summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers')
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix29
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix18
2 files changed, 34 insertions, 13 deletions
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index d0306dd33a4..23e11a32433 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -59,6 +59,9 @@ python3.pkgs.buildPythonApplication rec {
     # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
     ./boost-Do-not-add-system-paths-on-nix.patch
 
+    # Nixpkgs cctools does not have bitcode support.
+    ./disable-bitcode.patch
+
     # Fix passing multiple --define-variable arguments to pkg-config.
     # https://github.com/mesonbuild/meson/pull/10670
     (fetchpatch {
@@ -75,13 +78,7 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://github.com/mesonbuild/meson/commit/a38ad3039d0680f3ac34a6dc487776c79c48acf3.patch";
       hash = "sha256-9YaXwc+F3Pw4BjuOXqva4MD6DAxX1k5WLbn0xzwuEmw=";
     })
-  ]
-    # Nixpkgs cctools does not have bitcode support.
-    ++ lib.optional stdenv.isDarwin ./disable-bitcode.patch;
-
-  postPatch = if stdenv.isDarwin then ''
-    rm -r 'test cases/osx/7 bitcode'
-  '' else null;
+  ];
 
   setupHook = ./setup-hook.sh;
 
@@ -89,17 +86,23 @@ python3.pkgs.buildPythonApplication rec {
   checkInputs = [ zlib ]
     ++ lib.optionals stdenv.isDarwin [ Foundation OpenGL AppKit Cocoa ];
   checkPhase = ''
-    patchShebangs "test cases"
-    substituteInPlace "test cases/native/8 external program shebang parsing/script.int.in" \
+    runHook preCheck
+
+    patchShebangs 'test cases'
+    substituteInPlace 'test cases/native/8 external program shebang parsing/script.int.in' \
       --replace /usr/bin/env ${coreutils}/bin/env
     # requires git, creating cyclic dependency
-    rm -r "test cases/common/66 vcstag"
+    rm -r 'test cases/common/66 vcstag'
     # requires glib, creating cyclic dependency
-    rm -r "test cases/linuxlike/6 subdir include order"
-    rm -r "test cases/linuxlike/9 compiler checks with dependencies"
+    rm -r 'test cases/linuxlike/6 subdir include order'
+    rm -r 'test cases/linuxlike/9 compiler checks with dependencies'
     # requires static zlib, see #66461
-    rm -r "test cases/linuxlike/14 static dynamic linkage"
+    rm -r 'test cases/linuxlike/14 static dynamic linkage'
+    # Nixpkgs cctools does not have bitcode support.
+    rm -r 'test cases/osx/7 bitcode'
     HOME="$TMPDIR" python ./run_project_tests.py
+
+    runHook postCheck
   '';
 
   postFixup = ''
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index f80f0289dbe..84897e43f78 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -9,6 +9,7 @@
 , libxslt
 , python3
 , re2c
+, buildPackages
 , buildDocs ? true
 }:
 
@@ -23,6 +24,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI=";
   };
 
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
   nativeBuildInputs = [
     python3
     re2c
@@ -35,10 +38,25 @@ stdenv.mkDerivation rec {
     libxslt.bin
   ];
 
+  postPatch = ''
+    # write rebuild args to file after bootstrap
+    substituteInPlace configure.py --replace "subprocess.check_call(rebuild_args)" "open('rebuild_args','w').write(rebuild_args[0])"
+  '';
+
   buildPhase = ''
     runHook preBuild
 
+    # for list of env vars
+    # see https://github.com/ninja-build/ninja/blob/v1.11.1/configure.py#L264
+    CXX="$CXX_FOR_BUILD" \
+    AR="$AR_FOR_BUILD" \
+    CFLAGS="$CFLAGS_FOR_BUILD" \
+    CXXFLAGS="$CXXFLAGS_FOR_BUILD" \
+    LDFLAGS="$LDFLAGS_FOR_BUILD" \
     python configure.py --bootstrap
+    python configure.py
+
+    source rebuild_args
   '' + lib.optionalString buildDocs ''
     # "./ninja -vn manual" output copied here to support cross compilation.
     asciidoc -b docbook -d book -o build/manual.xml doc/manual.asciidoc