nixpkgs/pkgs/development/libraries/qt-5/hooks/qtbase-setup-hook.sh
Thomas Tuegel fe0ab944db
qt5: factor out common definitions and remove symlink farm
The module definitions are factored out and shared between qt56 and qt59. The
symlink farm which was created during builds is no longer needed.
2017-11-07 07:18:46 -06:00

88 lines
2.2 KiB
Bash

qtPluginPrefix=@qtPluginPrefix@
qtQmlPrefix=@qtQmlPrefix@
qtDocPrefix=@qtDocPrefix@
. @fix_qt_builtin_paths@
. @fix_qt_module_paths@
. @fix_qt_static_libs@
providesQtRuntime() {
[ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
}
# Build tools are often confused if QMAKE is unset.
QMAKE=@dev@/bin/qmake
export QMAKE
QMAKEPATH=
export QMAKEPATH
QMAKEMODULES=
export QMAKEMODULES
addToQMAKEPATH() {
if [ -d "$1/mkspecs" ]; then
QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
QMAKEPATH="${QMAKEPATH}${QMAKEPATH:+:}$1"
fi
}
# Propagate any runtime dependency of the building package.
# Each dependency is propagated to the user environment and as a build
# input so that it will be re-propagated to the user environment by any
# package depending on the building package. (This is necessary in case
# the building package does not provide runtime dependencies itself and so
# would not be propagated to the user environment.)
qtCrossEnvHook() {
addToQMAKEPATH "$1"
if providesQtRuntime "$1"; then
if [ "z${!outputBin}" != "z${!outputDev}" ]; then
propagatedBuildInputs+=" $1"
fi
propagatedUserEnvPkgs+=" $1"
fi
}
crossEnvHooks+=(qtCrossEnvHook)
qtEnvHook() {
addToQMAKEPATH "$1"
if providesQtRuntime "$1"; then
if [ "z${!outputBin}" != "z${!outputDev}" ]; then
propagatedNativeBuildInputs+=" $1"
fi
if [ -z "$crossConfig" ]; then
propagatedUserEnvPkgs+=" $1"
fi
fi
}
envHooks+=(qtEnvHook)
postPatchMkspecs() {
local bin="${!outputBin}"
local dev="${!outputDev}"
local doc="${!outputDoc}"
local lib="${!outputLib}"
moveToOutput "mkspecs" "$dev"
if [ -d "$dev/mkspecs/modules" ]; then
fixQtModulePaths "$dev/mkspecs/modules"
fi
if [ -d "$dev/mkspecs" ]; then
fixQtBuiltinPaths "$dev/mkspecs" '*.pr?'
fi
}
if [ -z "$dontPatchMkspecs" ]; then
postPhases="${postPhases}${postPhases:+ }postPatchMkspecs"
fi
postMoveQtStaticLibs() {
if [ "z${!outputLib}" != "z${!outputDev}" ]; then
fixQtStaticLibs "${!outputLib}" "${!outputDev}"
fi
}
if [ -z "$dontMoveQtStaticLibs" ]; then
postPhases="${postPhases}${postPhases:+ }postMoveQtStaticLibs"
fi