qtbase: Set cmakeFlags and NIX_CFLAGS_COMPILE in setupHook
This commit is contained in:
parent
b80ce0aeca
commit
7744998f04
@ -145,7 +145,7 @@ let
|
|||||||
patches = patches.qtbase;
|
patches = patches.qtbase;
|
||||||
inherit bison cups harfbuzz libGL;
|
inherit bison cups harfbuzz libGL;
|
||||||
withGtk3 = true; inherit dconf gtk3;
|
withGtk3 = true; inherit dconf gtk3;
|
||||||
inherit developerBuild decryptSslTraffic;
|
inherit debug developerBuild decryptSslTraffic;
|
||||||
};
|
};
|
||||||
|
|
||||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||||
|
@ -149,7 +149,7 @@ let
|
|||||||
patches = patches.qtbase;
|
patches = patches.qtbase;
|
||||||
inherit bison cups harfbuzz libGL;
|
inherit bison cups harfbuzz libGL;
|
||||||
withGtk3 = true; inherit dconf gtk3;
|
withGtk3 = true; inherit dconf gtk3;
|
||||||
inherit developerBuild decryptSslTraffic;
|
inherit debug developerBuild decryptSslTraffic;
|
||||||
};
|
};
|
||||||
|
|
||||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
if [[ -n "${__nix_qtbase-}" ]]; then
|
||||||
|
# Throw an error if a different version of Qt was already set up.
|
||||||
|
if [[ "$__nix_qtbase" != "@dev@" ]]; then
|
||||||
|
echo >&2 "Error: detected mismatched Qt dependencies:"
|
||||||
|
echo >&2 " @dev@"
|
||||||
|
echo >&2 " $__nix_qtbase"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else # Only set up Qt once.
|
||||||
|
__nix_qtbase="@dev@"
|
||||||
|
|
||||||
qtPluginPrefix=@qtPluginPrefix@
|
qtPluginPrefix=@qtPluginPrefix@
|
||||||
qtQmlPrefix=@qtQmlPrefix@
|
qtQmlPrefix=@qtQmlPrefix@
|
||||||
qtDocPrefix=@qtDocPrefix@
|
qtDocPrefix=@qtDocPrefix@
|
||||||
@ -5,6 +16,20 @@ qtDocPrefix=@qtDocPrefix@
|
|||||||
. @fix_qt_builtin_paths@
|
. @fix_qt_builtin_paths@
|
||||||
. @fix_qt_module_paths@
|
. @fix_qt_module_paths@
|
||||||
|
|
||||||
|
# Disable debug symbols if qtbase was built without debugging.
|
||||||
|
# This stops -dev paths from leaking into other outputs.
|
||||||
|
if [ -z "@debug@" ]; then
|
||||||
|
NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE-}${NIX_CFLAGS_COMPILE:+ }-DQT_NO_DEBUG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Integration with CMake:
|
||||||
|
# Set the CMake build type corresponding to how qtbase was built.
|
||||||
|
if [ -n "@debug@" ]; then
|
||||||
|
cmakeBuildType="Debug"
|
||||||
|
else
|
||||||
|
cmakeBuildType="Release"
|
||||||
|
fi
|
||||||
|
|
||||||
providesQtRuntime() {
|
providesQtRuntime() {
|
||||||
[ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
|
[ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
|
||||||
}
|
}
|
||||||
@ -19,7 +44,12 @@ export QMAKEPATH
|
|||||||
QMAKEMODULES=
|
QMAKEMODULES=
|
||||||
export QMAKEMODULES
|
export QMAKEMODULES
|
||||||
|
|
||||||
|
declare -Ag qmakePathSeen=()
|
||||||
qmakePathHook() {
|
qmakePathHook() {
|
||||||
|
# Skip this path if we have seen it before.
|
||||||
|
# MUST use 'if' because 'qmakePathSeen[$]' may be unset.
|
||||||
|
if [ -n "${qmakePathSeen[$1]-}" ]; then return; fi
|
||||||
|
qmakePathSeen[$1]=1
|
||||||
if [ -d "$1/mkspecs" ]
|
if [ -d "$1/mkspecs" ]
|
||||||
then
|
then
|
||||||
QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
|
QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
|
||||||
@ -34,7 +64,12 @@ envBuildHostHooks+=(qmakePathHook)
|
|||||||
# package depending on the building package. (This is necessary in case
|
# package depending on the building package. (This is necessary in case
|
||||||
# the building package does not provide runtime dependencies itself and so
|
# the building package does not provide runtime dependencies itself and so
|
||||||
# would not be propagated to the user environment.)
|
# would not be propagated to the user environment.)
|
||||||
|
declare -Ag qtEnvHostTargetSeen=()
|
||||||
qtEnvHostTargetHook() {
|
qtEnvHostTargetHook() {
|
||||||
|
# Skip this path if we have seen it before.
|
||||||
|
# MUST use 'if' because 'qmakePathSeen[$]' may be unset.
|
||||||
|
if [ -n "${qtEnvHostTargetSeen[$1]-}" ]; then return; fi
|
||||||
|
qtEnvHostTargetSeen[$1]=1
|
||||||
if providesQtRuntime "$1" && [ "z${!outputBin}" != "z${!outputDev}" ]
|
if providesQtRuntime "$1" && [ "z${!outputBin}" != "z${!outputDev}" ]
|
||||||
then
|
then
|
||||||
propagatedBuildInputs+=" $1"
|
propagatedBuildInputs+=" $1"
|
||||||
@ -64,3 +99,5 @@ postPatchMkspecs() {
|
|||||||
if [ -z "${dontPatchMkspecs-}" ]; then
|
if [ -z "${dontPatchMkspecs-}" ]; then
|
||||||
postPhases="${postPhases-}${postPhases:+ }postPatchMkspecs"
|
postPhases="${postPhases-}${postPhases:+ }postPatchMkspecs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
@ -9,16 +9,6 @@ args:
|
|||||||
let
|
let
|
||||||
args_ = {
|
args_ = {
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = toString (
|
|
||||||
optional (!debug) "-DQT_NO_DEBUG"
|
|
||||||
++ lib.toList (args.NIX_CFLAGS_COMPILE or []));
|
|
||||||
|
|
||||||
cmakeFlags =
|
|
||||||
(args.cmakeFlags or [])
|
|
||||||
++ [
|
|
||||||
("-DCMAKE_BUILD_TYPE=" + (if debug then "Debug" else "Release"))
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = args.enableParallelBuilding or true;
|
enableParallelBuilding = args.enableParallelBuilding or true;
|
||||||
|
|
||||||
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ wrapQtAppsHook ];
|
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ wrapQtAppsHook ];
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
libGL,
|
libGL,
|
||||||
buildExamples ? false,
|
buildExamples ? false,
|
||||||
buildTests ? false,
|
buildTests ? false,
|
||||||
|
debug ? false,
|
||||||
developerBuild ? false,
|
developerBuild ? false,
|
||||||
decryptSslTraffic ? false
|
decryptSslTraffic ? false
|
||||||
}:
|
}:
|
||||||
@ -39,6 +40,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
name = "qtbase-${version}";
|
name = "qtbase-${version}";
|
||||||
inherit qtCompatVersion src version;
|
inherit qtCompatVersion src version;
|
||||||
|
inherit debug;
|
||||||
|
|
||||||
propagatedBuildInputs =
|
propagatedBuildInputs =
|
||||||
[
|
[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user