mastodon: 4.3.1 -> 4.3.2 (#361487)
[NixPkgs.git] / pkgs / by-name / gb / gbenchmark / package.nix
blob0d3a8cc360eacdf25141abde112e1031f3f3008d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , ninja
6 , gtest
7 , prometheus-cpp
8 }:
10 stdenv.mkDerivation rec {
11   pname = "gbenchmark";
12   version = "1.9.0";
14   src = fetchFromGitHub {
15     owner = "google";
16     repo = "benchmark";
17     rev = "v${version}";
18     hash = "sha256-5cl1PIjhXaL58kSyWZXRWLq6BITS2BwEovPhwvk2e18=";
19   };
21   nativeBuildInputs = [ cmake ninja ];
23   buildInputs = [ gtest ];
25   cmakeFlags = [
26     (lib.cmakeBool "BENCHMARK_USE_BUNDLED_GTEST" false)
27     (lib.cmakeBool "BENCHMARK_ENABLE_WERROR" false)
28   ];
30   # We ran into issues with gtest 1.8.5 conditioning on
31   # `#if __has_cpp_attribute(maybe_unused)`, which was, for some
32   # reason, going through even when C++14 was being used and
33   # breaking the build on Darwin by triggering errors about using
34   # C++17 features.
35   #
36   # This might be a problem with our Clang, as it does not reproduce
37   # with Xcode, but we just work around it by silencing the warning.
38   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-c++17-attribute-extensions";
40   # Tests fail on 32-bit due to not enough precision
41   doCheck = stdenv.hostPlatform.is64bit;
43   passthru.tests = {
44     inherit prometheus-cpp;
45   };
47   meta = with lib; {
48     description = "Microbenchmark support library";
49     homepage = "https://github.com/google/benchmark";
50     license = licenses.asl20;
51     platforms = platforms.linux ++ platforms.darwin ++ platforms.freebsd;
52     maintainers = with maintainers; [ abbradar ];
53   };