opentelemetry-cpp: increased configurability of cmake options and dependencies

+27 -14
+27 -14
pkgs/by-name/op/opentelemetry-cpp/package.nix
··· 2 2 lib, 3 3 stdenv, 4 4 fetchFromGitHub, 5 + abseil-cpp, 5 6 cmake, 6 7 gtest, 7 8 protobuf, ··· 11 12 nlohmann_json, 12 13 nix-update-script, 13 14 cxxStandard ? null, 15 + enableHttp ? false, 16 + enableGrpc ? false, 17 + enablePrometheus ? false, 18 + enableElasticSearch ? false, 19 + enableZipkin ? false, 14 20 }: 15 21 let 16 22 opentelemetry-proto = fetchFromGitHub { ··· 39 45 40 46 buildInputs = [ 41 47 curl 42 - grpc 43 48 nlohmann_json 44 - prometheus-cpp 45 - protobuf 46 49 ]; 47 50 51 + propagatedBuildInputs = 52 + [ abseil-cpp ] 53 + ++ 54 + lib.optionals (enableGrpc || enableHttp) [ protobuf ] 55 + ++ lib.optionals enableGrpc [ 56 + grpc 57 + ] 58 + ++ lib.optionals enablePrometheus [ 59 + prometheus-cpp 60 + ]; 61 + 48 62 doCheck = true; 49 63 50 64 checkInputs = [ ··· 55 69 56 70 cmakeFlags = 57 71 [ 58 - "-DBUILD_SHARED_LIBS=ON" 59 - "-DWITH_OTLP_HTTP=ON" 60 - "-DWITH_OTLP_GRPC=ON" 61 - "-DWITH_ABSEIL=ON" 62 - "-DWITH_PROMETHEUS=ON" 63 - "-DWITH_ELASTICSEARCH=ON" 64 - "-DWITH_ZIPKIN=ON" 65 - "-DWITH_BENCHMARK=OFF" 66 - "-DOTELCPP_PROTO_PATH=${opentelemetry-proto}" 72 + (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) 73 + (lib.cmakeBool "WITH_BENCHMARK" false) 74 + (lib.cmakeBool "WITH_OTLP_HTTP" enableHttp) 75 + (lib.cmakeBool "WITH_OTLP_GRPC" enableGrpc) 76 + (lib.cmakeBool "WITH_PROMETHEUS" enablePrometheus) 77 + (lib.cmakeBool "WITH_ELASTICSEARCH" enableElasticSearch) 78 + (lib.cmakeBool "WITH_ZIPKIN" enableZipkin) 79 + (lib.cmakeFeature "OTELCPP_PROTO_PATH" "${opentelemetry-proto}") 67 80 ] 68 81 ++ lib.optionals (cxxStandard != null) [ 69 - "-DCMAKE_CXX_STANDARD=${cxxStandard}" 70 - "-DWITH_STL=CXX${cxxStandard}" 82 + (lib.cmakeFeature "CMAKE_CXX_STANDARD" cxxStandard) 83 + (lib.cmakeFeature "WITH_STL" "CXX${cxxStandard}") 71 84 ]; 72 85 73 86 outputs = [