diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/development/libraries/jsoncpp | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/jsoncpp')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/jsoncpp/default.nix | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix index 9adf509f8aaa..d9cf9a6c4346 100644 --- a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix +++ b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, cmake, python3, validatePkgConfig, fetchpatch }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, python3 +, validatePkgConfig +, fetchpatch +, secureMemory ? false +, enableStatic ? stdenv.hostPlatform.isStatic +}: stdenv.mkDerivation rec { pname = "jsoncpp"; @@ -30,22 +39,29 @@ stdenv.mkDerivation rec { export sourceRoot=${src.name} ''; - # Hack to be able to run the test, broken because we use - # CMAKE_SKIP_BUILD_RPATH to avoid cmake resetting rpath on install - preBuild = if stdenv.isDarwin then '' - export DYLD_LIBRARY_PATH="$PWD/lib''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH" - '' else '' - export LD_LIBRARY_PATH="$PWD/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + postPatch = lib.optionalString secureMemory '' + sed -i 's/#define JSONCPP_USING_SECURE_MEMORY 0/#define JSONCPP_USING_SECURE_MEMORY 1/' include/json/version.h ''; nativeBuildInputs = [ cmake python3 validatePkgConfig ]; cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_STATIC_LIBS=OFF" "-DBUILD_OBJECT_LIBS=OFF" "-DJSONCPP_WITH_CMAKE_PACKAGE=ON" - ] ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DJSONCPP_WITH_TESTS=OFF"; + ] + # the test's won't compile if secureMemory is used because there is no + # comparison operators and conversion functions between + # std::basic_string<..., Json::SecureAllocator<char>> vs. + # std::basic_string<..., [default allocator]> + ++ lib.optional ((stdenv.buildPlatform != stdenv.hostPlatform) || secureMemory) "-DJSONCPP_WITH_TESTS=OFF" + ++ lib.optional (!enableStatic) "-DBUILD_STATIC_LIBS=OFF"; + + # this is fixed and no longer necessary in 1.9.5 but there they use + # memset_s without switching to a different c++ standard in the cmake files + postInstall = lib.optionalString enableStatic '' + (cd $out/lib && ln -sf libjsoncpp_static.a libjsoncpp.a) + ''; meta = with lib; { homepage = "https://github.com/open-source-parsers/jsoncpp"; |