boost: Fix library and include paths in generated cmake files

Boost generates its installed cmake configuration using custom logic
in its own build system; while this logic *knows* where it should be
installed, the generated config overrides the correct information with
new paths based on the location of the cmake configuration file in an
attempt to let the package be relocated after installation.

This patch simply undoes that.
wip/yesman
TQ Hirsch 4 years ago
parent 9d7885276a
commit 777df0b4a5
  1. 21
      pkgs/development/libraries/boost/cmake-paths.patch
  2. 3
      pkgs/development/libraries/boost/generic.nix

@ -0,0 +1,21 @@
diff --git a/tools/boost_install/boost-install.jam b/tools/boost_install/boost-install.jam
index ad19f7b55..ec6bf57ff 100644
--- a/tools/boost_install/boost-install.jam
+++ b/tools/boost_install/boost-install.jam
@@ -587,6 +587,7 @@ rule generate-cmake-config- ( target : sources * : properties * )
"# Compute the include and library directories relative to this file."
""
"get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" ABSOLUTE)"
+ "get_filename_component(_BOOST_REAL_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" ABSOLUTE)"
: true ;
if [ path.is-rooted $(cmakedir) ]
@@ -607,6 +608,8 @@ rule generate-cmake-config- ( target : sources * : properties * )
" unset(_BOOST_CMAKEDIR_ORIGINAL)"
"endif()"
""
+ "# Assume that the installer actually did know where the libs were to be installed"
+ "get_filename_component(_BOOST_CMAKEDIR \"$(cmakedir-native)\" REALPATH)"
: true ;
}

@ -112,7 +112,8 @@ stdenv.mkDerivation {
++ optional stdenv.isDarwin (
if version == "1.55.0"
then ./darwin-1.55-no-system-python.patch
else ./darwin-no-system-python.patch);
else ./darwin-no-system-python.patch)
++ optional (versionAtLeast version "1.70") ./cmake-paths.patch;
meta = {
homepage = "http://boost.org/";

Loading…
Cancel
Save