diff --git a/pkgs/development/libraries/abseil-cpp/202401.nix b/pkgs/development/libraries/abseil-cpp/202401.nix new file mode 100644 index 000000000000..f540a7f8260a --- /dev/null +++ b/pkgs/development/libraries/abseil-cpp/202401.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gtest +, static ? stdenv.hostPlatform.isStatic +, cxxStandard ? null +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "abseil-cpp"; + version = "20240116.0"; + + src = fetchFromGitHub { + owner = "abseil"; + repo = "abseil-cpp"; + rev = "refs/tags/${finalAttrs.version}"; + hash = "sha256-HtJh2oYGx87bNT6Ll3WLeYPPxH1f9JwVqCXGErykGnE="; + }; + + cmakeFlags = [ + "-DABSL_BUILD_TEST_HELPERS=ON" + "-DABSL_USE_EXTERNAL_GOOGLETEST=ON" + "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" + ] ++ lib.optionals (cxxStandard != null) [ + "-DCMAKE_CXX_STANDARD=${cxxStandard}" + ]; + + strictDeps = true; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ gtest ]; + + meta = with lib; { + description = "An open-source collection of C++ code designed to augment the C++ standard library"; + homepage = "https://abseil.io/"; + license = licenses.asl20; + platforms = platforms.all; + maintainers = [ maintainers.GaetanLepage ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d35c2bd705df..4b59863a7228 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20443,6 +20443,12 @@ with pkgs; then overrideSDK stdenv { darwinMinVersion = "10.13"; } else stdenv; }; + abseil-cpp_202401 = callPackage ../development/libraries/abseil-cpp/202401.nix { + # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. + stdenv = if stdenv.isDarwin && stdenv.isx86_64 + then overrideSDK stdenv { darwinMinVersion = "10.13"; } + else stdenv; + }; abseil-cpp = abseil-cpp_202301; accountsservice = callPackage ../development/libraries/accountsservice { };