From b80ce0aecaa1a233d69f3e169ad28c09146c2676 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 12 Oct 2019 11:17:02 -0500 Subject: [PATCH] qmake: Select debug or release build The qmake hook sets its own `CONFIG+=debug` or `CONFIG+=release` depending on how `qtbase` was built. We no longer rely on using the custom deriver for this feature. --- pkgs/development/libraries/qt-5/5.12/default.nix | 1 + pkgs/development/libraries/qt-5/5.14/default.nix | 1 + pkgs/development/libraries/qt-5/5.15/default.nix | 1 + pkgs/development/libraries/qt-5/hooks/qmake-hook.sh | 12 +++++++++++- pkgs/development/libraries/qt-5/mkDerivation.nix | 3 --- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix index cf5a0de11ad..a092d7a78fb 100644 --- a/pkgs/development/libraries/qt-5/5.12/default.nix +++ b/pkgs/development/libraries/qt-5/5.12/default.nix @@ -197,6 +197,7 @@ let qmake = makeSetupHook { deps = [ self.qtbase.dev ]; substitutions = { + inherit debug; fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh; }; } ../hooks/qmake-hook.sh; diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix index 7139a3b7354..9c88a405d77 100644 --- a/pkgs/development/libraries/qt-5/5.14/default.nix +++ b/pkgs/development/libraries/qt-5/5.14/default.nix @@ -199,6 +199,7 @@ let qmake = makeSetupHook { deps = [ self.qtbase.dev ]; substitutions = { + inherit debug; fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh; }; } ../hooks/qmake-hook.sh; diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index a3a0496f160..c3f6ab159c4 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -179,6 +179,7 @@ let qmake = makeSetupHook { deps = [ self.qtbase.dev ]; substitutions = { + inherit debug; fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh; }; } ../hooks/qmake-hook.sh; diff --git a/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh b/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh index 7f6ddb76ad5..741225a5aa8 100644 --- a/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh +++ b/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh @@ -3,6 +3,9 @@ qmakeFlags=( ${qmakeFlags-} ) qmakePrePhase() { + qmakeFlags_orig=( "${qmakeFlags[@]}" ) + + # These flags must be added _before_ the flags specified in the derivation. qmakeFlags=( \ "PREFIX=$out" \ "NIX_OUTPUT_OUT=$out" \ @@ -11,8 +14,15 @@ qmakePrePhase() { "NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \ "NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \ "NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}" \ - "${qmakeFlags[@]}" \ ) + + if [ -n "@debug@" ]; then + qmakeFlags+=( "CONFIG+=debug" ) + else + qmakeFlags+=( "CONFIG+=release" ) + fi + + qmakeFlags+=( "${qmakeFlags_orig[@]}" ) } prePhases+=" qmakePrePhase" diff --git a/pkgs/development/libraries/qt-5/mkDerivation.nix b/pkgs/development/libraries/qt-5/mkDerivation.nix index 2c6333cb020..3d711e5033d 100644 --- a/pkgs/development/libraries/qt-5/mkDerivation.nix +++ b/pkgs/development/libraries/qt-5/mkDerivation.nix @@ -9,9 +9,6 @@ args: let args_ = { - qmakeFlags = [ ("CONFIG+=" + (if debug then "debug" else "release")) ] - ++ (args.qmakeFlags or []); - NIX_CFLAGS_COMPILE = toString ( optional (!debug) "-DQT_NO_DEBUG" ++ lib.toList (args.NIX_CFLAGS_COMPILE or []));