Merge branch 'cmake-rpath'
This commit is contained in:
commit
dd07a28e5d
|
@ -29,6 +29,7 @@ _ecmPropagateSharedData() {
|
|||
|
||||
_ecmConfig() {
|
||||
# Because we need to use absolute paths here, we must set *all* the paths.
|
||||
cmakeFlags+=" -DKDE_SKIP_RPATH_SETTINGS=TRUE"
|
||||
cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
|
||||
cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
|
||||
cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
|
||||
|
|
|
@ -112,7 +112,7 @@ EOF
|
|||
|
||||
# Set PATH to find qmake first in a preConfigure hook
|
||||
# It must run after all the envHooks!
|
||||
postHooks+=(_qtSetQmakePath)
|
||||
preConfigureHooks+=(_qtSetQmakePath)
|
||||
fi
|
||||
|
||||
qt5LinkModuleDir() {
|
||||
|
@ -122,10 +122,23 @@ qt5LinkModuleDir() {
|
|||
fi
|
||||
}
|
||||
|
||||
qt5LinkModuleDir @out@ "lib"
|
||||
NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@"
|
||||
NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@"
|
||||
|
||||
qt5LinkModuleDir @dev@ "bin"
|
||||
qt5LinkModuleDir @dev@ "include"
|
||||
qt5LinkModuleDir @dev@ "lib"
|
||||
qt5LinkModuleDir @dev@ "mkspecs"
|
||||
qt5LinkModuleDir @dev@ "share"
|
||||
_qtLinkAllModules() {
|
||||
IFS=: read -a modules <<< $NIX_QT5_MODULES
|
||||
for module in ${modules[@]}; do
|
||||
qt5LinkModuleDir "$module" "lib"
|
||||
done
|
||||
|
||||
IFS=: read -a modules <<< $NIX_QT5_MODULES_DEV
|
||||
for module in ${modules[@]}; do
|
||||
qt5LinkModuleDir "$module" "bin"
|
||||
qt5LinkModuleDir "$module" "include"
|
||||
qt5LinkModuleDir "$module" "lib"
|
||||
qt5LinkModuleDir "$module" "mkspecs"
|
||||
qt5LinkModuleDir "$module" "share"
|
||||
done
|
||||
}
|
||||
|
||||
preConfigureHooks+=(_qtLinkAllModules)
|
||||
|
|
|
@ -1,7 +1,2 @@
|
|||
qt5LinkModuleDir @out@ "lib"
|
||||
|
||||
qt5LinkModuleDir @dev@ "bin"
|
||||
qt5LinkModuleDir @dev@ "include"
|
||||
qt5LinkModuleDir @dev@ "lib"
|
||||
qt5LinkModuleDir @dev@ "mkspecs"
|
||||
qt5LinkModuleDir @dev@ "share"
|
||||
NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@"
|
||||
NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@"
|
||||
|
|
|
@ -47,9 +47,15 @@ cmakeConfigurePhase() {
|
|||
cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags"
|
||||
cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputDev}/include $cmakeFlags"
|
||||
|
||||
# Avoid cmake resetting the rpath of binaries, on make install
|
||||
# And build always Release, to ensure optimisation flags
|
||||
cmakeFlags="-DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON $cmakeFlags"
|
||||
# Always build Release, to ensure optimisation flags.
|
||||
cmakeFlags="-DCMAKE_BUILD_TYPE=Release $cmakeFlags"
|
||||
# Do not change the RPATH between build and install, simply
|
||||
# build with the correct RPATH in the first place.
|
||||
cmakeFlags="-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE $cmakeFlags"
|
||||
# Do not try to guess the correct RPATH based on linker flags.
|
||||
cmakeFlags="-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE $cmakeFlags"
|
||||
# Just use exactly our RPATH.
|
||||
cmakeFlags="-DCMAKE_INSTALL_RPATH=$CMAKE_INSTALL_RPATH $cmakeFlags"
|
||||
|
||||
echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
|
||||
|
||||
|
@ -77,6 +83,7 @@ makeCmakeFindLibs(){
|
|||
;;
|
||||
-L*)
|
||||
export CMAKE_LIBRARY_PATH="$CMAKE_LIBRARY_PATH${CMAKE_LIBRARY_PATH:+:}${flag:2}"
|
||||
export CMAKE_INSTALL_RPATH="$CMAKE_INSTALL_RPATH${CMAKE_INSTALL_RPATH:+:}${flag:2}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue