diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/op/opentelemetry-cpp/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/op/opentelemetry-cpp/package.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/op/opentelemetry-cpp/package.nix b/nixpkgs/pkgs/by-name/op/opentelemetry-cpp/package.nix new file mode 100644 index 000000000000..5bc1a46ad6ce --- /dev/null +++ b/nixpkgs/pkgs/by-name/op/opentelemetry-cpp/package.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gtest +, protobuf +, curl +, grpc +, prometheus-cpp +, nlohmann_json +, nix-update-script +}: + +let + opentelemetry-proto = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-proto"; + rev = "v1.0.0"; + hash = "sha256-1IylAZs8gElpruSX52A+ZopU8jXH/MjRE+FQV3gQ+Gk="; + }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "opentelemetry-cpp"; + version = "1.13.0"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-cpp"; + rev = "v${finalAttrs.version}"; + hash = "sha256-Tf1ZnmHavnwwvRb4Tes20LMld+w/2kRo5UErT8pHf3w="; + }; + + patches = [ + ./0001-Disable-tests-requiring-network-access.patch + ] ++ lib.optional stdenv.isDarwin ./0002-Disable-segfaulting-test-on-Darwin.patch; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + curl + grpc + nlohmann_json + prometheus-cpp + protobuf + ]; + + doCheck = true; + + checkInputs = [ + gtest + ]; + + strictDeps = true; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=ON" + "-DWITH_OTLP_HTTP=ON" + "-DWITH_OTLP_GRPC=ON" + "-DWITH_ABSEIL=ON" + "-DWITH_PROMETHEUS=ON" + "-DWITH_ELASTICSEARCH=ON" + "-DWITH_ZIPKIN=ON" + "-DWITH_BENCHMARK=OFF" + "-DOTELCPP_PROTO_PATH=${opentelemetry-proto}" + ]; + + outputs = [ "out" "dev" ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "The OpenTelemetry C++ Client Library"; + homepage = "https://github.com/open-telemetry/opentelemetry-cpp"; + license = [ lib.licenses.asl20 ]; + maintainers = with lib.maintainers; [ jfroche ]; + # https://github.com/protocolbuffers/protobuf/issues/14492 + broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); + }; +}) |