From 69d1151bfabc005febf6f5f6a628072602a17f06 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 16 Nov 2018 16:22:11 -0600 Subject: [PATCH 01/10] ninja: make setup-hook.sh closer to setup.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Things changed in the Ninja setup-hook: - Respect installFlags - Automatically add checkPhase (can be disabled with dontUseNinjaCheck in the same way as dontUseNinjaBuild and dontUseNinjaInstall). Tests are only run when "ninja test" exists. - Error in build phase when build.ninja is missing. We don’t have a way to fall back to other build methods, so it’s best to be very clear when we aren’t able to build with ninja - Set -l flag to 1 when enableParallelBuilding is disabled --- .../tools/build-managers/ninja/setup-hook.sh | 78 +++++++++++++------ 1 file changed, 56 insertions(+), 22 deletions(-) diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index d9ad7460931..61670ec9ebb 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -1,27 +1,23 @@ ninjaBuildPhase() { runHook preBuild - if [[ -z "$ninjaFlags" && ! ( -e build.ninja ) ]]; then - echo "no build.ninja, doing nothing" - else - local buildCores=1 + local buildCores=1 - # Parallel building is enabled by default. - if [ "${enableParallelBuilding-1}" ]; then - buildCores="$NIX_BUILD_CORES" - fi - - # shellcheck disable=SC2086 - local flagsArray=( \ - -j"$buildCores" -l"$NIX_BUILD_CORES" \ - $ninjaFlags "${ninjaFlagsArray[@]}" \ - $buildFlags "${buildFlagsArray[@]}") - - echoCmd 'build flags' "${flagsArray[@]}" - ninja "${flagsArray[@]}" - unset flagsArray + # Parallel building is enabled by default. + if [ "${enableParallelBuilding-1}" ]; then + buildCores="$NIX_BUILD_CORES" fi + local flagsArray=( + -j$buildCores -l$buildCores + $ninjaFlags "${ninjaFlagsArray[@]}" + $buildFlags "${buildFlagsArray[@]}" + ) + + echoCmd 'build flags' "${flagsArray[@]}" + ninja "${flagsArray[@]}" + unset flagsArray + runHook postBuild } @@ -32,11 +28,12 @@ fi ninjaInstallPhase() { runHook preInstall - installTargets="${installTargets:-install}" - # shellcheck disable=SC2086 - local flagsArray=( $installTargets \ - $ninjaFlags "${ninjaFlagsArray[@]}") + local flagsArray=( + $ninjaFlags "${ninjaFlagsArray[@]}" + $installFlags "${installFlagsArray[@]}" + ${installTargets:-install} + ) echoCmd 'install flags' "${flagsArray[@]}" ninja "${flagsArray[@]}" @@ -48,3 +45,40 @@ ninjaInstallPhase() { if [ -z "$dontUseNinjaInstall" -a -z "$installPhase" ]; then installPhase=ninjaInstallPhase fi + +ninjaCheckPhase() { + runHook preCheck + + if [ -z "${checkTarget:-}" ]; then + if ninja -n test >/dev/null 2>&1; then + checkTarget=test + fi + fi + + if [ -z "${checkTarget:-}" ]; then + echo "no check/test target in ${makefile:-Makefile}, doing nothing" + else + local buildCores=1 + + if [ "${enableParallelChecking-1}" ]; then + buildCores="$NIX_BUILD_CORES" + fi + + local flagsArray=( + -j$buildCores -l$buildCores + $ninjaFlags "${ninjaFlagsArray[@]}" + $checkFlags "${checkFlagsArray[@]}" + $checkTarget + ) + + echoCmd 'check flags' "${flagsArray[@]}" + ninja "${flagsArray[@]}" + unset flagsArray + fi + + runHook postCheck +} + +if [ -z "$dontUseNinjaCheck" -a -z "$checkPhase" ]; then + checkPhase=ninjaCheckPhase +fi From 955fd85829ec9006ee5102dc66fea62f31ddbb28 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 16 Nov 2018 16:28:12 -0600 Subject: [PATCH 02/10] treewide: remove "ninja test" checkPhase This is now handled in the ninja setup hook. (cherry picked from commit f5e099754fffc3d2b68c8ba6fc8025f3c921fddc) --- pkgs/applications/audio/cozy-audiobooks/default.nix | 4 ---- pkgs/development/python-modules/pythonix/default.nix | 4 ---- 2 files changed, 8 deletions(-) diff --git a/pkgs/applications/audio/cozy-audiobooks/default.nix b/pkgs/applications/audio/cozy-audiobooks/default.nix index f0a7280b038..1b996f9f0c5 100644 --- a/pkgs/applications/audio/cozy-audiobooks/default.nix +++ b/pkgs/applications/audio/cozy-audiobooks/default.nix @@ -66,10 +66,6 @@ python3Packages.buildPythonApplication rec { substituteInPlace cozy/magic/magic.py --replace "ctypes.util.find_library('magic')" "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'" ''; - checkPhase = '' - ninja test - ''; - postInstall = '' ln -s $out/bin/com.github.geigi.cozy $out/bin/cozy ''; diff --git a/pkgs/development/python-modules/pythonix/default.nix b/pkgs/development/python-modules/pythonix/default.nix index fd8012a24d3..f7cecae8497 100644 --- a/pkgs/development/python-modules/pythonix/default.nix +++ b/pkgs/development/python-modules/pythonix/default.nix @@ -18,10 +18,6 @@ buildPythonPackage rec { buildInputs = [ nix boost ]; - checkPhase = '' - ninja test - ''; - meta = with stdenv.lib; { description = '' Eval nix code from python. From 9433a3882b8c3f9ab1503292335b73a4356bf750 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sat, 17 Nov 2018 19:08:47 -0600 Subject: [PATCH 03/10] ninja: fix mistake in setup-hook --- pkgs/development/tools/build-managers/ninja/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index 61670ec9ebb..7754819fd9a 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -56,7 +56,7 @@ ninjaCheckPhase() { fi if [ -z "${checkTarget:-}" ]; then - echo "no check/test target in ${makefile:-Makefile}, doing nothing" + echo "no test target found in ninja, doing nothing" else local buildCores=1 From f6f7283e692111603b15bae48026432469b85085 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 18 Nov 2018 13:42:05 -0600 Subject: [PATCH 04/10] meson: remove check phase This is now handled in ninja. --- .../tools/build-managers/meson/setup-hook.sh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh index b98225c1305..06375c1528e 100644 --- a/pkgs/development/tools/build-managers/meson/setup-hook.sh +++ b/pkgs/development/tools/build-managers/meson/setup-hook.sh @@ -39,15 +39,3 @@ if [ -z "$dontUseMesonConfigure" -a -z "$configurePhase" ]; then setOutputFlags= configurePhase=mesonConfigurePhase fi - -mesonCheckPhase() { - runHook preCheck - - meson test --print-errorlogs - - runHook postCheck -} - -if [ -z "$dontUseMesonCheck" -a -z "$checkPhase" ]; then - checkPhase=mesonCheckPhase -fi From 2c47a4229f3b3c22b4d7d337694dcf2067b41594 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 18 Nov 2018 14:33:09 -0600 Subject: [PATCH 05/10] treewide: remove ctest usages These are already in the generated makefiles! --- pkgs/applications/audio/radiotray-ng/default.nix | 1 - .../networking/instant-messengers/utox/default.nix | 5 ----- pkgs/applications/science/biology/EZminc/default.nix | 2 -- pkgs/applications/science/biology/N3/default.nix | 3 --- pkgs/applications/science/biology/ants/default.nix | 2 -- pkgs/applications/science/biology/inormalize/default.nix | 2 -- pkgs/applications/science/biology/minc-tools/default.nix | 2 -- pkgs/desktops/gnome-3/apps/evolution/default.nix | 2 -- pkgs/development/libraries/arguments/default.nix | 1 - pkgs/development/libraries/cmark/default.nix | 4 ++-- pkgs/development/libraries/libcouchbase/default.nix | 1 - pkgs/development/libraries/libtoxcore/default.nix | 1 - pkgs/development/libraries/pagmo2/default.nix | 4 ---- pkgs/development/libraries/science/biology/EBTKS/default.nix | 2 -- pkgs/development/libraries/science/biology/bicpl/default.nix | 1 - .../libraries/science/biology/elastix/default.nix | 2 -- .../libraries/science/biology/nifticlib/default.nix | 1 - .../development/libraries/science/math/liblapack/default.nix | 4 ---- pkgs/development/libraries/simpleitk/default.nix | 2 -- 19 files changed, 2 insertions(+), 40 deletions(-) diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix index 6f7ce9048c4..900c2bf7a41 100644 --- a/pkgs/applications/audio/radiotray-ng/default.nix +++ b/pkgs/applications/audio/radiotray-ng/default.nix @@ -80,7 +80,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; checkInputs = [ gtest ]; - checkPhase = "ctest"; # doCheck = stdenv.hostPlatform == stdenv.buildPlatform; doCheck = false; # fails to pick up supplied gtest, tries to download it instead diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix index 531ca5cbadc..3c5e65ffe77 100644 --- a/pkgs/applications/networking/instant-messengers/utox/default.nix +++ b/pkgs/applications/networking/instant-messengers/utox/default.nix @@ -32,11 +32,6 @@ stdenv.mkDerivation rec { doCheck = stdenv.hostPlatform == stdenv.buildPlatform; checkInputs = [ check ]; - checkPhase = '' - runHook preCheck - ctest -VV - runHook postCheck - ''; meta = with stdenv.lib; { description = "Lightweight Tox client"; diff --git a/pkgs/applications/science/biology/EZminc/default.nix b/pkgs/applications/science/biology/EZminc/default.nix index 20d88eb3aaf..dbcfead6b1e 100644 --- a/pkgs/applications/science/biology/EZminc/default.nix +++ b/pkgs/applications/science/biology/EZminc/default.nix @@ -18,8 +18,6 @@ stdenv.mkDerivation rec { pname = "EZminc"; "-DEZMINC_BUILD_MRFSEG=TRUE" "-DEZMINC_BUILD_DD=TRUE" ]; - checkPhase = "ctest --output-on-failure ../tests/"; # but ctest doesn't find the tests ... - enableParallelBuilding = true; meta = with stdenv.lib; { diff --git a/pkgs/applications/science/biology/N3/default.nix b/pkgs/applications/science/biology/N3/default.nix index c14846beec2..3502ac3e51b 100644 --- a/pkgs/applications/science/biology/N3/default.nix +++ b/pkgs/applications/science/biology/N3/default.nix @@ -19,9 +19,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-DEBTKS_DIR=${EBTKS}/lib/" ]; - checkPhase = "ctest --output-on-failure"; - # don't run the tests as they fail at least due to missing program wrappers in this phase ... - postFixup = '' for p in $out/bin/*; do wrapProgram $p --prefix PERL5LIB : $PERL5LIB diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix index 0b8ddd0d4fb..f54bd9af028 100644 --- a/pkgs/applications/science/biology/ants/default.nix +++ b/pkgs/applications/science/biology/ants/default.nix @@ -21,8 +21,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - checkPhase = "ctest"; - postInstall = '' for file in $out/bin/*; do wrapProgram $file --set ANTSPATH "$out/bin" diff --git a/pkgs/applications/science/biology/inormalize/default.nix b/pkgs/applications/science/biology/inormalize/default.nix index f17143ad06b..7ba054a592e 100644 --- a/pkgs/applications/science/biology/inormalize/default.nix +++ b/pkgs/applications/science/biology/inormalize/default.nix @@ -21,8 +21,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-DEBTKS_DIR=${EBTKS}/lib/" ]; - checkPhase = "ctest --output-on-failure"; # but no tests - postFixup = '' for p in $out/bin/*; do wrapProgram $p --prefix PERL5LIB : $PERL5LIB diff --git a/pkgs/applications/science/biology/minc-tools/default.nix b/pkgs/applications/science/biology/minc-tools/default.nix index 8e1f74686d1..c680eda95d2 100644 --- a/pkgs/applications/science/biology/minc-tools/default.nix +++ b/pkgs/applications/science/biology/minc-tools/default.nix @@ -17,8 +17,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" ]; - checkPhase = "ctest --output-on-failure"; # still some weird test failures though - postFixup = '' for prog in minccomplete minchistory mincpik; do wrapProgram $out/bin/$prog --prefix PERL5LIB : $PERL5LIB diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix index 8fb8c230784..89a16b02893 100644 --- a/pkgs/desktops/gnome-3/apps/evolution/default.nix +++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix @@ -38,8 +38,6 @@ in stdenv.mkDerivation rec { doCheck = true; - checkPhase = "ctest"; - passthru = { updateScript = gnome3.updateScript { packageName = "evolution"; diff --git a/pkgs/development/libraries/arguments/default.nix b/pkgs/development/libraries/arguments/default.nix index 60fafd60ad0..ebef604e1be 100644 --- a/pkgs/development/libraries/arguments/default.nix +++ b/pkgs/development/libraries/arguments/default.nix @@ -18,7 +18,6 @@ stdenv.mkDerivation rec { #cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib" "-DBICPL_DIR=${bicpl}/lib" "-DBUILD_TESTING=FALSE" ]; - checkPhase = "ctest --output-on-failure"; doCheck = false; # internal_volume_io.h: No such file or directory diff --git a/pkgs/development/libraries/cmark/default.nix b/pkgs/development/libraries/cmark/default.nix index fce02dac950..1cf963c8946 100644 --- a/pkgs/development/libraries/cmark/default.nix +++ b/pkgs/development/libraries/cmark/default.nix @@ -13,9 +13,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; doCheck = !stdenv.isDarwin; - checkPhase = '' + preCheck = '' export LD_LIBRARY_PATH=$(readlink -f ./src) - CTEST_OUTPUT_ON_FAILURE=1 make test + export CTEST_OUTPUT_ON_FAILURE=1 ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libcouchbase/default.nix b/pkgs/development/libraries/libcouchbase/default.nix index 516702e2afe..2db78f82292 100644 --- a/pkgs/development/libraries/libcouchbase/default.nix +++ b/pkgs/development/libraries/libcouchbase/default.nix @@ -17,7 +17,6 @@ stdenv.mkDerivation rec { buildInputs = [ libevent openssl ]; doCheck = !stdenv.isDarwin; - checkPhase = "ctest"; meta = with stdenv.lib; { description = "C client library for Couchbase"; diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix index 4a8dfc40d4a..026674e44fc 100644 --- a/pkgs/development/libraries/libtoxcore/default.nix +++ b/pkgs/development/libraries/libtoxcore/default.nix @@ -31,7 +31,6 @@ let doCheck = false; # hangs, tries to access the net? checkInputs = [ check ]; - checkPhase = "ctest"; meta = with stdenv.lib; { description = "P2P FOSS instant messaging application aimed to replace Skype"; diff --git a/pkgs/development/libraries/pagmo2/default.nix b/pkgs/development/libraries/pagmo2/default.nix index 367cef46dc4..c680efa95f8 100644 --- a/pkgs/development/libraries/pagmo2/default.nix +++ b/pkgs/development/libraries/pagmo2/default.nix @@ -31,10 +31,6 @@ stdenv.mkDerivation rec { "-DNLOPT_LIBRARY=${nlopt}/lib/libnlopt_cxx.so" "-DPAGMO_WITH_IPOPT=yes" "-DCMAKE_CXX_FLAGS='-fuse-ld=gold'" ]; - checkPhase = '' - ctest - ''; - # All but one test pass skip for now (tests also take about 30 min to compile) doCheck = false; diff --git a/pkgs/development/libraries/science/biology/EBTKS/default.nix b/pkgs/development/libraries/science/biology/EBTKS/default.nix index 67f868a91a7..f4353f51d66 100644 --- a/pkgs/development/libraries/science/biology/EBTKS/default.nix +++ b/pkgs/development/libraries/science/biology/EBTKS/default.nix @@ -16,8 +16,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" ]; - checkPhase = "ctest --output-on-failure"; # but cmake doesn't run the tests ... - meta = with stdenv.lib; { homepage = "https://github.com/BIC-MNI/${pname}"; description = "Library for working with MINC files"; diff --git a/pkgs/development/libraries/science/biology/bicpl/default.nix b/pkgs/development/libraries/science/biology/bicpl/default.nix index d00a74f61e2..f763e8a4fcc 100644 --- a/pkgs/development/libraries/science/biology/bicpl/default.nix +++ b/pkgs/development/libraries/science/biology/bicpl/default.nix @@ -19,7 +19,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib" "-DBUILD_TESTING=FALSE" ]; - checkPhase = "ctest --output-on-failure"; doCheck = false; # internal_volume_io.h: No such file or directory diff --git a/pkgs/development/libraries/science/biology/elastix/default.nix b/pkgs/development/libraries/science/biology/elastix/default.nix index 7b9e6b24d41..5f4cbbaa567 100644 --- a/pkgs/development/libraries/science/biology/elastix/default.nix +++ b/pkgs/development/libraries/science/biology/elastix/default.nix @@ -13,8 +13,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake python ]; buildInputs = [ itk ]; - checkPhase = "ctest"; - meta = with stdenv.lib; { homepage = http://elastix.isi.uu.nl/; description = "Image registration toolkit based on ITK"; diff --git a/pkgs/development/libraries/science/biology/nifticlib/default.nix b/pkgs/development/libraries/science/biology/nifticlib/default.nix index 19e5644b993..51eed36312d 100644 --- a/pkgs/development/libraries/science/biology/nifticlib/default.nix +++ b/pkgs/development/libraries/science/biology/nifticlib/default.nix @@ -13,7 +13,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ zlib ]; - checkPhase = "ctest"; doCheck = false; # fails 7 out of 293 tests meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix index e6af2251b1f..561be858023 100644 --- a/pkgs/development/libraries/science/math/liblapack/default.nix +++ b/pkgs/development/libraries/science/math/liblapack/default.nix @@ -42,10 +42,6 @@ stdenv.mkDerivation rec { doCheck = ! shared; - checkPhase = " - ctest - "; - enableParallelBuilding = true; passthru = { diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix index c807325b155..1c17124a2bb 100644 --- a/pkgs/development/libraries/simpleitk/default.nix +++ b/pkgs/development/libraries/simpleitk/default.nix @@ -15,8 +15,6 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_CXX_FLAGS='-Wno-attributes'" ]; - checkPhase = "ctest"; - enableParallelBuilding = true; meta = with stdenv.lib; { From 4ebab3de1e54a2e5fe4b4075f86e486c95a5cdf4 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 18 Nov 2018 18:07:56 -0600 Subject: [PATCH 06/10] ninja: use -t query to find test target --- pkgs/development/tools/build-managers/ninja/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index 7754819fd9a..a593bb790bf 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -50,7 +50,7 @@ ninjaCheckPhase() { runHook preCheck if [ -z "${checkTarget:-}" ]; then - if ninja -n test >/dev/null 2>&1; then + if ninja -t query test >/dev/null 2>&1; then checkTarget=test fi fi From a16c04c9d3669c2f5baab8ac28f7e06bf8a7759e Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 18 Nov 2018 19:03:03 -0600 Subject: [PATCH 07/10] =?UTF-8?q?ninja:=20don=E2=80=99t=20use=20build/inst?= =?UTF-8?q?all/check=20flags=20in=20setup-hook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These don’t have much use in ninja, so easiest to leave them out. --- pkgs/development/tools/build-managers/ninja/setup-hook.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index a593bb790bf..58347868682 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -11,7 +11,6 @@ ninjaBuildPhase() { local flagsArray=( -j$buildCores -l$buildCores $ninjaFlags "${ninjaFlagsArray[@]}" - $buildFlags "${buildFlagsArray[@]}" ) echoCmd 'build flags' "${flagsArray[@]}" @@ -31,7 +30,6 @@ ninjaInstallPhase() { # shellcheck disable=SC2086 local flagsArray=( $ninjaFlags "${ninjaFlagsArray[@]}" - $installFlags "${installFlagsArray[@]}" ${installTargets:-install} ) @@ -67,7 +65,6 @@ ninjaCheckPhase() { local flagsArray=( -j$buildCores -l$buildCores $ninjaFlags "${ninjaFlagsArray[@]}" - $checkFlags "${checkFlagsArray[@]}" $checkTarget ) From b75d5adb330bf013fdbc9ff2514fad49a6ca3dc1 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 18 Nov 2018 19:29:51 -0600 Subject: [PATCH 08/10] ninja: restore old -l flag value This can be set unconditionally to $NIX_BUILD_CORES according to @orivej. --- pkgs/development/tools/build-managers/ninja/setup-hook.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index 58347868682..3e87814ba86 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -9,7 +9,7 @@ ninjaBuildPhase() { fi local flagsArray=( - -j$buildCores -l$buildCores + -j$buildCores -l$NIX_BUILD_CORES $ninjaFlags "${ninjaFlagsArray[@]}" ) @@ -63,7 +63,7 @@ ninjaCheckPhase() { fi local flagsArray=( - -j$buildCores -l$buildCores + -j$buildCores -l$NIX_BUILD_CORES $ninjaFlags "${ninjaFlagsArray[@]}" $checkTarget ) From 285eb9a8949a63446fd8bdffbe30a8468ed897c7 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 19 Nov 2018 16:16:16 -0600 Subject: [PATCH 09/10] cmake: set CTEST_OUTPUT_ON_FAILURE globally We should always use this. --- pkgs/applications/office/kmymoney/default.nix | 2 +- pkgs/development/libraries/cmark/default.nix | 1 - .../development/libraries/science/math/scalapack/default.nix | 5 +---- pkgs/development/tools/build-managers/cmake/setup-hook.sh | 2 ++ pkgs/development/tools/build-managers/ninja/setup-hook.sh | 3 --- 5 files changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/office/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix index 7899bf607e5..7061a632394 100644 --- a/pkgs/applications/office/kmymoney/default.nix +++ b/pkgs/applications/office/kmymoney/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { installCheckPhase = let pluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}"; in lib.optionalString doInstallCheck '' - QT_PLUGIN_PATH=${lib.escapeShellArg pluginPath} CTEST_OUTPUT_ON_FAILURE=1 \ + QT_PLUGIN_PATH=${lib.escapeShellArg pluginPath} \ ${xvfb_run}/bin/xvfb-run -s '-screen 0 1024x768x24' make test \ ARGS="-E '(reports-chart-test)'" # Test fails, so exclude it for now. ''; diff --git a/pkgs/development/libraries/cmark/default.nix b/pkgs/development/libraries/cmark/default.nix index 1cf963c8946..a7b604bc0d2 100644 --- a/pkgs/development/libraries/cmark/default.nix +++ b/pkgs/development/libraries/cmark/default.nix @@ -15,7 +15,6 @@ stdenv.mkDerivation rec { doCheck = !stdenv.isDarwin; preCheck = '' export LD_LIBRARY_PATH=$(readlink -f ./src) - export CTEST_OUTPUT_ON_FAILURE=1 ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/science/math/scalapack/default.nix b/pkgs/development/libraries/science/math/scalapack/default.nix index 3961374a9b1..ba02b16383f 100644 --- a/pkgs/development/libraries/science/math/scalapack/default.nix +++ b/pkgs/development/libraries/science/math/scalapack/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ) ''; - checkPhase = '' + preCheck = '' # make sure the test starts even if we have less than 4 cores export OMPI_MCA_rmaps_base_oversubscribe=1 @@ -35,9 +35,6 @@ stdenv.mkDerivation rec { export OMP_NUM_THREADS=1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib - export CTEST_OUTPUT_ON_FAILURE=1 - - make test ''; meta = with stdenv.lib; { diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index d37e25943b5..42b4999cfba 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -15,6 +15,8 @@ fixCmakeFiles() { cmakeConfigurePhase() { runHook preConfigure + export CTEST_OUTPUT_ON_FAILURE=1 + if [ -z "$dontFixCmake" ]; then fixCmakeFiles . fi diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/development/tools/build-managers/ninja/setup-hook.sh index 3e87814ba86..e3c67bd139d 100644 --- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh +++ b/pkgs/development/tools/build-managers/ninja/setup-hook.sh @@ -15,7 +15,6 @@ ninjaBuildPhase() { echoCmd 'build flags' "${flagsArray[@]}" ninja "${flagsArray[@]}" - unset flagsArray runHook postBuild } @@ -35,7 +34,6 @@ ninjaInstallPhase() { echoCmd 'install flags' "${flagsArray[@]}" ninja "${flagsArray[@]}" - unset flagsArray runHook postInstall } @@ -70,7 +68,6 @@ ninjaCheckPhase() { echoCmd 'check flags' "${flagsArray[@]}" ninja "${flagsArray[@]}" - unset flagsArray fi runHook postCheck From 70e2b0bef065b1b9e68f8a86f8fc619ed3c6613e Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 19 Nov 2018 18:14:44 -0600 Subject: [PATCH 10/10] cmake: also set CTEST_PARALLEL_LEVEL --- pkgs/development/tools/build-managers/cmake/setup-hook.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index 42b4999cfba..f095103ee04 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -16,6 +16,9 @@ cmakeConfigurePhase() { runHook preConfigure export CTEST_OUTPUT_ON_FAILURE=1 + if [ -n "${enableParallelChecking-1}" ]; then + export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES + fi if [ -z "$dontFixCmake" ]; then fixCmakeFiles .