summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-6/hooks/qmake-hook.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/qt-6/hooks/qmake-hook.sh')
-rw-r--r--pkgs/development/libraries/qt-6/hooks/qmake-hook.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-6/hooks/qmake-hook.sh b/pkgs/development/libraries/qt-6/hooks/qmake-hook.sh
new file mode 100644
index 00000000000..ec1d2ea6124
--- /dev/null
+++ b/pkgs/development/libraries/qt-6/hooks/qmake-hook.sh
@@ -0,0 +1,48 @@
+. @fix_qmake_libtool@
+
+qmakeFlags=(${qmakeFlags-})
+
+qmakePrePhase() {
+    qmakeFlags_orig=("${qmakeFlags[@]}")
+
+    # These flags must be added _before_ the flags specified in the derivation.
+    # TODO: these flags also need a patch which isn't applied
+    # can we either remove these flags or update the qt5 patch?
+    # "NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
+    qmakeFlags=(
+        "PREFIX=$out"
+        "NIX_OUTPUT_OUT=$out"
+        "NIX_OUTPUT_DEV=${!outputDev}"
+        "NIX_OUTPUT_BIN=${!outputBin}"
+        "NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}"
+        "NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}"
+    )
+
+    if [ -n "@debug@" ]; then
+        qmakeFlags+=("CONFIG+=debug")
+    else
+        qmakeFlags+=("CONFIG+=release")
+    fi
+
+    qmakeFlags+=("${qmakeFlags_orig[@]}")
+}
+prePhases+=" qmakePrePhase"
+
+qmakeConfigurePhase() {
+    runHook preConfigure
+
+    echo "QMAKEPATH=$QMAKEPATH"
+    echo qmake "${qmakeFlags[@]}"
+    qmake "${qmakeFlags[@]}"
+
+    if ! [[ -v enableParallelBuilding ]]; then
+        enableParallelBuilding=1
+        echo "qmake: enabled parallel building"
+    fi
+
+    runHook postConfigure
+}
+
+if [ -z "${dontUseQmakeConfigure-}" -a -z "${configurePhase-}" ]; then
+    configurePhase=qmakeConfigurePhase
+fi