From e0698cf8980650e4733ca39d8151facbd7297e7f Mon Sep 17 00:00:00 2001 From: Jeremy Parker Date: Mon, 10 Jul 2023 19:39:08 +1000 Subject: jsonnet: fix linking issue with libjsonnet++ --- pkgs/development/compilers/jsonnet/default.nix | 13 +++++++++++-- .../compilers/jsonnet/fix-cpp-unresolved-symbols.patch | 12 ++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/compilers/jsonnet/fix-cpp-unresolved-symbols.patch (limited to 'pkgs/development/compilers/jsonnet') diff --git a/pkgs/development/compilers/jsonnet/default.nix b/pkgs/development/compilers/jsonnet/default.nix index a4aec00711fb1..ce31fe08195ad 100644 --- a/pkgs/development/compilers/jsonnet/default.nix +++ b/pkgs/development/compilers/jsonnet/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "jsonnet"; version = "0.20.0"; - outputs = ["out" "doc"]; + outputs = [ "out" "doc" ]; src = fetchFromGitHub { rev = "v${version}"; @@ -15,7 +15,16 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ jekyll cmake ]; buildInputs = [ gtest ]; - cmakeFlags = ["-DBUILD_STATIC_LIBS=ON" "-DUSE_SYSTEM_GTEST=ON" ]; + cmakeFlags = [ + "-DUSE_SYSTEM_GTEST=ON" + "-DBUILD_STATIC_LIBS=${if stdenv.hostPlatform.isStatic then "ON" else "OFF"}" + "-DBUILD_SHARED_BINARIES=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}" + ]; + + # https://github.com/google/jsonnet/issues/778 + patches = [ + ./fix-cpp-unresolved-symbols.patch + ]; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/jsonnet/fix-cpp-unresolved-symbols.patch b/pkgs/development/compilers/jsonnet/fix-cpp-unresolved-symbols.patch new file mode 100644 index 0000000000000..dc4cdcf2ea1be --- /dev/null +++ b/pkgs/development/compilers/jsonnet/fix-cpp-unresolved-symbols.patch @@ -0,0 +1,12 @@ +diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt +index 3a52458..872e6c6 100644 +--- a/cpp/CMakeLists.txt ++++ b/cpp/CMakeLists.txt +@@ -10,6 +10,7 @@ set(LIBJSONNETPP_SOURCE + + add_library(libjsonnet++ SHARED ${LIBJSONNETPP_HEADERS} ${LIBJSONNETPP_SOURCE}) + add_dependencies(libjsonnet++ jsonnet) ++target_link_libraries(libjsonnet++ libjsonnet) + # target_link_libraries(libjsonnet libjsonnet) + + # CMake prepends CMAKE_SHARED_LIBRARY_PREFIX to shared libraries, so without -- cgit 1.4.1