From 851b5944bb797394728eb368c3cddf51534c73e4 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 3 Dec 2016 09:51:31 -0600 Subject: [PATCH 1/4] qt5: factor out common setup hook for qtbase --- .../libraries/qt-5/5.5/qtbase/default.nix | 2 +- .../libraries/qt-5/5.6/qtbase/default.nix | 2 +- .../libraries/qt-5/5.6/qtbase/setup-hook.sh | 166 ------------------ .../libraries/qt-5/5.7/qtbase/default.nix | 2 +- .../libraries/qt-5/5.7/qtbase/setup-hook.sh | 166 ------------------ .../setup-hook.sh => qtbase-setup-hook.sh} | 0 6 files changed, 3 insertions(+), 335 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.6/qtbase/setup-hook.sh delete mode 100644 pkgs/development/libraries/qt-5/5.7/qtbase/setup-hook.sh rename pkgs/development/libraries/qt-5/{5.5/qtbase/setup-hook.sh => qtbase-setup-hook.sh} (100%) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 04d06b0fcd4..5a44ca89902 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -272,7 +272,7 @@ stdenv.mkDerivation { ''; inherit lndir; - setupHook = ./setup-hook.sh; + setupHook = ../../qtbase-setup-hook.sh; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/qt-5/5.6/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.6/qtbase/default.nix index cb63f0b50f5..b34540d87a5 100644 --- a/pkgs/development/libraries/qt-5/5.6/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.6/qtbase/default.nix @@ -228,7 +228,7 @@ stdenv.mkDerivation { ''; inherit lndir; - setupHook = ./setup-hook.sh; + setupHook = ../../qtbase-setup-hook.sh; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/qt-5/5.6/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.6/qtbase/setup-hook.sh deleted file mode 100644 index 47d196cec26..00000000000 --- a/pkgs/development/libraries/qt-5/5.6/qtbase/setup-hook.sh +++ /dev/null @@ -1,166 +0,0 @@ -addToSearchPathOnceWithCustomDelimiter() { - local delim="$1" - local search="$2" - local target="$3" - local dirs - local exported - IFS="$delim" read -a dirs <<< "${!search}" - local canonical - if canonical=$(readlink -e "$target"); then - for dir in ${dirs[@]}; do - if [ "z$dir" == "z$canonical" ]; then exported=1; fi - done - if [ -z $exported ]; then - eval "export ${search}=\"${!search}${!search:+$delim}$canonical\"" - fi - fi -} - -addToSearchPathOnce() { - addToSearchPathOnceWithCustomDelimiter ':' "$@" -} - -propagateOnce() { - addToSearchPathOnceWithCustomDelimiter ' ' "$@" -} - -_qtPropagate() { - for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do - if [ -d "$1/$dir" ]; then - propagateOnce propagatedBuildInputs "$1" - break - fi - done - addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" -} - -crossEnvHooks+=(_qtPropagate) - -_qtPropagateNative() { - for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do - if [ -d "$1/$dir" ]; then - propagateOnce propagatedNativeBuildInputs "$1" - break - fi - done - if [ -z "$crossConfig" ]; then - addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" - fi -} - -envHooks+=(_qtPropagateNative) - -_qtMultioutDevs() { - # This is necessary whether the package is a Qt module or not - moveToOutput "mkspecs" "${!outputDev}" -} - -preFixupHooks+=(_qtMultioutDevs) - -_qtSetCMakePrefix() { - export CMAKE_PREFIX_PATH="$NIX_QT5_TMP${CMAKE_PREFIX_PATH:+:}${CMAKE_PREFIX_PATH}" -} - -_qtRmTmp() { - if [ -z "$NIX_QT_SUBMODULE" ]; then - rm -fr "$NIX_QT5_TMP" - else - cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read file; do - if [ ! -d "$NIX_QT5_TMP/$file" ]; then - rm -f "$NIX_QT5_TMP/$file" - fi - done - - cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read dir; do - if [ -d "$NIX_QT5_TMP/$dir" ]; then - rmdir --ignore-fail-on-non-empty -p "$NIX_QT5_TMP/$dir" - fi - done - - rm "$NIX_QT5_TMP/nix-support/qt-inputs" - fi -} - -_qtSetQmakePath() { - export PATH="$NIX_QT5_TMP/bin${PATH:+:}$PATH" -} - -if [ -z "$NIX_QT5_TMP" ]; then - if [ -z "$NIX_QT_SUBMODULE" ]; then - NIX_QT5_TMP=$(pwd)/__nix_qt5__ - else - NIX_QT5_TMP=$out - fi - postInstallHooks+=(_qtRmTmp) - - mkdir -p "$NIX_QT5_TMP/nix-support" - for subdir in bin include lib mkspecs share; do - mkdir "$NIX_QT5_TMP/$subdir" - echo "$subdir/" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - done - - postHooks+=(_qtSetCMakePrefix) - - cp "@dev@/bin/qmake" "$NIX_QT5_TMP/bin" - echo "bin/qmake" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - - cat >"$NIX_QT5_TMP/bin/qt.conf" <> "$NIX_QT5_TMP/nix-support/qt-inputs" - - export QMAKE="$NIX_QT5_TMP/bin/qmake" - - # Set PATH to find qmake first in a preConfigure hook - # It must run after all the envHooks! - preConfigureHooks+=(_qtSetQmakePath) -fi - -qt5LinkModuleDir() { - if [ -d "$1/$2" ]; then - @lndir@/bin/lndir -silent "$1/$2" "$NIX_QT5_TMP/$2" - find "$1/$2" -printf "$2/%P\n" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - fi -} - -NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@" -NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@" - -_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) - -_qtFixCMakePaths() { - find "${!outputLib}" -name "*.cmake" | while read file; do - substituteInPlace "$file" \ - --subst-var-by NIX_OUT "${!outputLib}" \ - --subst-var-by NIX_DEV "${!outputDev}" - done -} - -if [ -n "$NIX_QT_SUBMODULE" ]; then - postInstallHooks+=(_qtFixCMakePaths) -fi diff --git a/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix index 16cc09f9c03..06bec5a0faf 100644 --- a/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.7/qtbase/default.nix @@ -232,7 +232,7 @@ stdenv.mkDerivation { ''; inherit lndir; - setupHook = ./setup-hook.sh; + setupHook = ../../qtbase-setup-hook.sh; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/qt-5/5.7/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.7/qtbase/setup-hook.sh deleted file mode 100644 index 47d196cec26..00000000000 --- a/pkgs/development/libraries/qt-5/5.7/qtbase/setup-hook.sh +++ /dev/null @@ -1,166 +0,0 @@ -addToSearchPathOnceWithCustomDelimiter() { - local delim="$1" - local search="$2" - local target="$3" - local dirs - local exported - IFS="$delim" read -a dirs <<< "${!search}" - local canonical - if canonical=$(readlink -e "$target"); then - for dir in ${dirs[@]}; do - if [ "z$dir" == "z$canonical" ]; then exported=1; fi - done - if [ -z $exported ]; then - eval "export ${search}=\"${!search}${!search:+$delim}$canonical\"" - fi - fi -} - -addToSearchPathOnce() { - addToSearchPathOnceWithCustomDelimiter ':' "$@" -} - -propagateOnce() { - addToSearchPathOnceWithCustomDelimiter ' ' "$@" -} - -_qtPropagate() { - for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do - if [ -d "$1/$dir" ]; then - propagateOnce propagatedBuildInputs "$1" - break - fi - done - addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" -} - -crossEnvHooks+=(_qtPropagate) - -_qtPropagateNative() { - for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do - if [ -d "$1/$dir" ]; then - propagateOnce propagatedNativeBuildInputs "$1" - break - fi - done - if [ -z "$crossConfig" ]; then - addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" - fi -} - -envHooks+=(_qtPropagateNative) - -_qtMultioutDevs() { - # This is necessary whether the package is a Qt module or not - moveToOutput "mkspecs" "${!outputDev}" -} - -preFixupHooks+=(_qtMultioutDevs) - -_qtSetCMakePrefix() { - export CMAKE_PREFIX_PATH="$NIX_QT5_TMP${CMAKE_PREFIX_PATH:+:}${CMAKE_PREFIX_PATH}" -} - -_qtRmTmp() { - if [ -z "$NIX_QT_SUBMODULE" ]; then - rm -fr "$NIX_QT5_TMP" - else - cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read file; do - if [ ! -d "$NIX_QT5_TMP/$file" ]; then - rm -f "$NIX_QT5_TMP/$file" - fi - done - - cat "$NIX_QT5_TMP/nix-support/qt-inputs" | while read dir; do - if [ -d "$NIX_QT5_TMP/$dir" ]; then - rmdir --ignore-fail-on-non-empty -p "$NIX_QT5_TMP/$dir" - fi - done - - rm "$NIX_QT5_TMP/nix-support/qt-inputs" - fi -} - -_qtSetQmakePath() { - export PATH="$NIX_QT5_TMP/bin${PATH:+:}$PATH" -} - -if [ -z "$NIX_QT5_TMP" ]; then - if [ -z "$NIX_QT_SUBMODULE" ]; then - NIX_QT5_TMP=$(pwd)/__nix_qt5__ - else - NIX_QT5_TMP=$out - fi - postInstallHooks+=(_qtRmTmp) - - mkdir -p "$NIX_QT5_TMP/nix-support" - for subdir in bin include lib mkspecs share; do - mkdir "$NIX_QT5_TMP/$subdir" - echo "$subdir/" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - done - - postHooks+=(_qtSetCMakePrefix) - - cp "@dev@/bin/qmake" "$NIX_QT5_TMP/bin" - echo "bin/qmake" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - - cat >"$NIX_QT5_TMP/bin/qt.conf" <> "$NIX_QT5_TMP/nix-support/qt-inputs" - - export QMAKE="$NIX_QT5_TMP/bin/qmake" - - # Set PATH to find qmake first in a preConfigure hook - # It must run after all the envHooks! - preConfigureHooks+=(_qtSetQmakePath) -fi - -qt5LinkModuleDir() { - if [ -d "$1/$2" ]; then - @lndir@/bin/lndir -silent "$1/$2" "$NIX_QT5_TMP/$2" - find "$1/$2" -printf "$2/%P\n" >> "$NIX_QT5_TMP/nix-support/qt-inputs" - fi -} - -NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@" -NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@" - -_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) - -_qtFixCMakePaths() { - find "${!outputLib}" -name "*.cmake" | while read file; do - substituteInPlace "$file" \ - --subst-var-by NIX_OUT "${!outputLib}" \ - --subst-var-by NIX_DEV "${!outputDev}" - done -} - -if [ -n "$NIX_QT_SUBMODULE" ]; then - postInstallHooks+=(_qtFixCMakePaths) -fi diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh similarity index 100% rename from pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh rename to pkgs/development/libraries/qt-5/qtbase-setup-hook.sh From 53a694e0968430483b27509e7a80aeb8d5b78b87 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 3 Dec 2016 09:53:18 -0600 Subject: [PATCH 2/4] qt5: factor out common qtSubmodule setup hook --- pkgs/development/libraries/qt-5/5.5/default.nix | 2 +- pkgs/development/libraries/qt-5/5.6/default.nix | 2 +- pkgs/development/libraries/qt-5/5.6/setup-hook.sh | 2 -- pkgs/development/libraries/qt-5/5.7/default.nix | 2 +- pkgs/development/libraries/qt-5/5.7/setup-hook.sh | 2 -- .../qt-5/{5.5/setup-hook.sh => qtsubmodule-setup-hook.sh} | 0 6 files changed, 3 insertions(+), 7 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.6/setup-hook.sh delete mode 100644 pkgs/development/libraries/qt-5/5.7/setup-hook.sh rename pkgs/development/libraries/qt-5/{5.5/setup-hook.sh => qtsubmodule-setup-hook.sh} (100%) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index fdeb4f7e6c9..92e71aab091 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -49,7 +49,7 @@ let outputs = args.outputs or [ "out" "dev" ]; setOutputFlags = args.setOutputFlags or false; - setupHook = ./setup-hook.sh; + setupHook = ../qtsubmodule-setup-hook.sh; enableParallelBuilding = args.enableParallelBuilding or true; diff --git a/pkgs/development/libraries/qt-5/5.6/default.nix b/pkgs/development/libraries/qt-5/5.6/default.nix index 8b4e924a733..68def625cb2 100644 --- a/pkgs/development/libraries/qt-5/5.6/default.nix +++ b/pkgs/development/libraries/qt-5/5.6/default.nix @@ -50,7 +50,7 @@ let outputs = args.outputs or [ "out" "dev" ]; setOutputFlags = args.setOutputFlags or false; - setupHook = ./setup-hook.sh; + setupHook = ../qtsubmodule-setup-hook.sh; enableParallelBuilding = args.enableParallelBuilding or true; diff --git a/pkgs/development/libraries/qt-5/5.6/setup-hook.sh b/pkgs/development/libraries/qt-5/5.6/setup-hook.sh deleted file mode 100644 index e41433c1138..00000000000 --- a/pkgs/development/libraries/qt-5/5.6/setup-hook.sh +++ /dev/null @@ -1,2 +0,0 @@ -NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@" -NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@" diff --git a/pkgs/development/libraries/qt-5/5.7/default.nix b/pkgs/development/libraries/qt-5/5.7/default.nix index c5d32b8ce0a..93a3fdf72b0 100644 --- a/pkgs/development/libraries/qt-5/5.7/default.nix +++ b/pkgs/development/libraries/qt-5/5.7/default.nix @@ -50,7 +50,7 @@ let outputs = args.outputs or [ "out" "dev" ]; setOutputFlags = args.setOutputFlags or false; - setupHook = ./setup-hook.sh; + setupHook = ../qtsubmodule-setup-hook.sh; enableParallelBuilding = args.enableParallelBuilding or true; diff --git a/pkgs/development/libraries/qt-5/5.7/setup-hook.sh b/pkgs/development/libraries/qt-5/5.7/setup-hook.sh deleted file mode 100644 index e41433c1138..00000000000 --- a/pkgs/development/libraries/qt-5/5.7/setup-hook.sh +++ /dev/null @@ -1,2 +0,0 @@ -NIX_QT5_MODULES="${NIX_QT5_MODULES}${NIX_QT5_MODULES:+:}@out@" -NIX_QT5_MODULES_DEV="${NIX_QT5_MODULES_DEV}${NIX_QT5_MODULES_DEV:+:}@dev@" diff --git a/pkgs/development/libraries/qt-5/5.5/setup-hook.sh b/pkgs/development/libraries/qt-5/qtsubmodule-setup-hook.sh similarity index 100% rename from pkgs/development/libraries/qt-5/5.5/setup-hook.sh rename to pkgs/development/libraries/qt-5/qtsubmodule-setup-hook.sh From 2c4995c013fa093ccbf469ca279f543739529d8b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 3 Dec 2016 09:55:39 -0600 Subject: [PATCH 3/4] qt5: factor out common qmake setup hook --- .../libraries/qt-5/5.5/default.nix | 5 ++- .../libraries/qt-5/5.6/default.nix | 5 ++- .../libraries/qt-5/5.6/qmake-hook.sh | 42 ------------------- .../libraries/qt-5/5.7/default.nix | 2 +- .../libraries/qt-5/5.7/qmake-hook.sh | 42 ------------------- .../libraries/qt-5/{5.5 => }/qmake-hook.sh | 0 6 files changed, 9 insertions(+), 87 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.6/qmake-hook.sh delete mode 100644 pkgs/development/libraries/qt-5/5.7/qmake-hook.sh rename pkgs/development/libraries/qt-5/{5.5 => }/qmake-hook.sh (100%) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 92e71aab091..e7d35dcb84b 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -113,7 +113,10 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; - qmakeHook = makeSetupHook { substitutions = { qt_dev = qtbase.dev; lndir = pkgs.xorg.lndir; }; } ./qmake-hook.sh; + qmakeHook = + makeSetupHook + { deps = [ self.qtbase.dev ]; } + ../qmake-hook.sh; }; diff --git a/pkgs/development/libraries/qt-5/5.6/default.nix b/pkgs/development/libraries/qt-5/5.6/default.nix index 68def625cb2..5c58b85639b 100644 --- a/pkgs/development/libraries/qt-5/5.6/default.nix +++ b/pkgs/development/libraries/qt-5/5.6/default.nix @@ -110,7 +110,10 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; - qmakeHook = makeSetupHook { deps = [ self.qtbase.dev ]; } ./qmake-hook.sh; + qmakeHook = + makeSetupHook + { deps = [ self.qtbase.dev ]; } + ../qmake-hook.sh; }; diff --git a/pkgs/development/libraries/qt-5/5.6/qmake-hook.sh b/pkgs/development/libraries/qt-5/5.6/qmake-hook.sh deleted file mode 100644 index 696b4ea8dad..00000000000 --- a/pkgs/development/libraries/qt-5/5.6/qmake-hook.sh +++ /dev/null @@ -1,42 +0,0 @@ -qmakeConfigurePhase() { - runHook preConfigure - - qmake PREFIX=$out $qmakeFlags - - runHook postConfigure -} - -if [ -z "$dontUseQmakeConfigure" -a -z "$configurePhase" ]; then - configurePhase=qmakeConfigurePhase -fi - -_qtModuleMultioutDevsPre() { - # We cannot simply set these paths in configureFlags because libQtCore retains - # references to the paths it was built with. - moveToOutput "bin" "${!outputDev}" - moveToOutput "include" "${!outputDev}" - - # The destination directory must exist or moveToOutput will do nothing - mkdir -p "${!outputDev}/share" - moveToOutput "share/doc" "${!outputDev}" -} - -_qtModuleMultioutDevsPost() { - # Move libtool archives and qmake project files to $dev/lib - if [ "z${!outputLib}" != "z${!outputDev}" ]; then - pushd "${!outputLib}" - if [ -d "lib" ]; then - find lib \( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | \ - while read -r -d $'\0' file; do - mkdir -p "${!outputDev}/$(dirname "$file")" - mv "${!outputLib}/$file" "${!outputDev}/$file" - done - fi - popd - fi -} - -if [ -n "$NIX_QT_SUBMODULE" ]; then - preFixupHooks+=(_qtModuleMultioutDevsPre) - postFixupHooks+=(_qtModuleMultioutDevsPost) -fi diff --git a/pkgs/development/libraries/qt-5/5.7/default.nix b/pkgs/development/libraries/qt-5/5.7/default.nix index 93a3fdf72b0..dbb66b6510a 100644 --- a/pkgs/development/libraries/qt-5/5.7/default.nix +++ b/pkgs/development/libraries/qt-5/5.7/default.nix @@ -112,7 +112,7 @@ let qmakeHook = makeSetupHook { deps = [ self.qtbase.dev ]; } - ./qmake-hook.sh; + ../qmake-hook.sh; }; diff --git a/pkgs/development/libraries/qt-5/5.7/qmake-hook.sh b/pkgs/development/libraries/qt-5/5.7/qmake-hook.sh deleted file mode 100644 index 696b4ea8dad..00000000000 --- a/pkgs/development/libraries/qt-5/5.7/qmake-hook.sh +++ /dev/null @@ -1,42 +0,0 @@ -qmakeConfigurePhase() { - runHook preConfigure - - qmake PREFIX=$out $qmakeFlags - - runHook postConfigure -} - -if [ -z "$dontUseQmakeConfigure" -a -z "$configurePhase" ]; then - configurePhase=qmakeConfigurePhase -fi - -_qtModuleMultioutDevsPre() { - # We cannot simply set these paths in configureFlags because libQtCore retains - # references to the paths it was built with. - moveToOutput "bin" "${!outputDev}" - moveToOutput "include" "${!outputDev}" - - # The destination directory must exist or moveToOutput will do nothing - mkdir -p "${!outputDev}/share" - moveToOutput "share/doc" "${!outputDev}" -} - -_qtModuleMultioutDevsPost() { - # Move libtool archives and qmake project files to $dev/lib - if [ "z${!outputLib}" != "z${!outputDev}" ]; then - pushd "${!outputLib}" - if [ -d "lib" ]; then - find lib \( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | \ - while read -r -d $'\0' file; do - mkdir -p "${!outputDev}/$(dirname "$file")" - mv "${!outputLib}/$file" "${!outputDev}/$file" - done - fi - popd - fi -} - -if [ -n "$NIX_QT_SUBMODULE" ]; then - preFixupHooks+=(_qtModuleMultioutDevsPre) - postFixupHooks+=(_qtModuleMultioutDevsPost) -fi diff --git a/pkgs/development/libraries/qt-5/5.5/qmake-hook.sh b/pkgs/development/libraries/qt-5/qmake-hook.sh similarity index 100% rename from pkgs/development/libraries/qt-5/5.5/qmake-hook.sh rename to pkgs/development/libraries/qt-5/qmake-hook.sh From 7b05efb90dc8f12a01dbf2e6adf4f9f59f94d956 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 3 Dec 2016 09:57:17 -0600 Subject: [PATCH 4/4] qt5: factor out common makeQtWrapper setup hook --- .../libraries/qt-5/5.5/default.nix | 6 +++- .../libraries/qt-5/5.6/default.nix | 6 +++- .../libraries/qt-5/5.6/make-qt-wrapper.sh | 36 ------------------- .../libraries/qt-5/5.7/default.nix | 2 +- .../libraries/qt-5/5.7/make-qt-wrapper.sh | 36 ------------------- .../qt-5/{5.5 => }/make-qt-wrapper.sh | 0 6 files changed, 11 insertions(+), 75 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.6/make-qt-wrapper.sh delete mode 100644 pkgs/development/libraries/qt-5/5.7/make-qt-wrapper.sh rename pkgs/development/libraries/qt-5/{5.5 => }/make-qt-wrapper.sh (100%) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index e7d35dcb84b..6d27ed5a0d3 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -112,7 +112,11 @@ let qtxmlpatterns ]; - makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + makeQtWrapper = + makeSetupHook + { deps = [ makeWrapper ]; } + ../make-qt-wrapper.sh; + qmakeHook = makeSetupHook { deps = [ self.qtbase.dev ]; } diff --git a/pkgs/development/libraries/qt-5/5.6/default.nix b/pkgs/development/libraries/qt-5/5.6/default.nix index 5c58b85639b..560e0ac021d 100644 --- a/pkgs/development/libraries/qt-5/5.6/default.nix +++ b/pkgs/development/libraries/qt-5/5.6/default.nix @@ -109,7 +109,11 @@ let qtwebchannel qtwebengine qtwebsockets qtx11extras qtxmlpatterns ]; - makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + makeQtWrapper = + makeSetupHook + { deps = [ makeWrapper ]; } + ../make-qt-wrapper.sh; + qmakeHook = makeSetupHook { deps = [ self.qtbase.dev ]; } diff --git a/pkgs/development/libraries/qt-5/5.6/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.6/make-qt-wrapper.sh deleted file mode 100644 index b0d0bec9e3f..00000000000 --- a/pkgs/development/libraries/qt-5/5.6/make-qt-wrapper.sh +++ /dev/null @@ -1,36 +0,0 @@ -wrapQtProgram() { - local prog="$1" - shift - wrapProgram "$prog" \ - --set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \ - --set QML_IMPORT_PATH "$QML_IMPORT_PATH" \ - --set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \ - --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \ - --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \ - "$@" -} - -makeQtWrapper() { - local old="$1" - local new="$2" - shift - shift - makeWrapper "$old" "$new" \ - --set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \ - --set QML_IMPORT_PATH "$QML_IMPORT_PATH" \ - --set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \ - --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \ - --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \ - "$@" -} - -_makeQtWrapperSetup() { - # cannot use addToSearchPath because these directories may not exist yet - export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" - export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" - export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" - export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share" - export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" -} - -prePhases+=(_makeQtWrapperSetup) diff --git a/pkgs/development/libraries/qt-5/5.7/default.nix b/pkgs/development/libraries/qt-5/5.7/default.nix index dbb66b6510a..b3a8b4d05eb 100644 --- a/pkgs/development/libraries/qt-5/5.7/default.nix +++ b/pkgs/development/libraries/qt-5/5.7/default.nix @@ -107,7 +107,7 @@ let makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } - ./make-qt-wrapper.sh; + ../make-qt-wrapper.sh; qmakeHook = makeSetupHook diff --git a/pkgs/development/libraries/qt-5/5.7/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.7/make-qt-wrapper.sh deleted file mode 100644 index b0d0bec9e3f..00000000000 --- a/pkgs/development/libraries/qt-5/5.7/make-qt-wrapper.sh +++ /dev/null @@ -1,36 +0,0 @@ -wrapQtProgram() { - local prog="$1" - shift - wrapProgram "$prog" \ - --set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \ - --set QML_IMPORT_PATH "$QML_IMPORT_PATH" \ - --set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \ - --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \ - --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \ - "$@" -} - -makeQtWrapper() { - local old="$1" - local new="$2" - shift - shift - makeWrapper "$old" "$new" \ - --set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \ - --set QML_IMPORT_PATH "$QML_IMPORT_PATH" \ - --set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \ - --prefix XDG_DATA_DIRS : "$RUNTIME_XDG_DATA_DIRS" \ - --prefix XDG_CONFIG_DIRS : "$RUNTIME_XDG_CONFIG_DIRS" \ - "$@" -} - -_makeQtWrapperSetup() { - # cannot use addToSearchPath because these directories may not exist yet - export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" - export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" - export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" - export RUNTIME_XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputBin}/share" - export RUNTIME_XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputBin}/etc/xdg" -} - -prePhases+=(_makeQtWrapperSetup) diff --git a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/make-qt-wrapper.sh similarity index 100% rename from pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh rename to pkgs/development/libraries/qt-5/make-qt-wrapper.sh