summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2018-02-26 07:42:21 -0500
committerShea Levy <shea@shealevy.com>2018-02-26 07:42:21 -0500
commit044c65bd06e969411f2771e093cf89fd42bbbaf5 (patch)
tree388a232f73fb499e2df08728cd46e602d0fb66db /pkgs/development/tools
parent4f08b0fbac17c201216abbd776ce3bb292ed4946 (diff)
parent9d2af8d61ca651b5ad505c37f42e10ace4894fc2 (diff)
downloadnixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar.gz
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar.bz2
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar.lz
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar.xz
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.tar.zst
nixlib-044c65bd06e969411f2771e093cf89fd42bbbaf5.zip
Merge branch 'systemd-cross' into staging
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix26
-rw-r--r--pkgs/development/tools/build-managers/meson/setup-hook.sh8
-rw-r--r--pkgs/development/tools/misc/autogen/default.nix2
3 files changed, 31 insertions, 5 deletions
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 5db0bce21f79..27aa38cfa7e1 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -1,5 +1,7 @@
-{ lib, python3Packages }:
-python3Packages.buildPythonApplication rec {
+{ lib, python3Packages, stdenv, targetPlatform, writeTextDir, m4 }: let
+  targetPrefix = lib.optionalString stdenv.isCross
+                   (targetPlatform.config + "-");
+in python3Packages.buildPythonApplication rec {
   version = "0.44.0";
   pname = "meson";
   name = "${pname}-${version}";
@@ -33,6 +35,26 @@ python3Packages.buildPythonApplication rec {
 
   setupHook = ./setup-hook.sh;
 
+  crossFile = writeTextDir "cross-file.conf" ''
+    [binaries]
+    c = '${targetPrefix}cc'
+    cpp = '${targetPrefix}c++'
+    ar = '${targetPrefix}ar'
+    strip = '${targetPrefix}strip'
+    pkgconfig = 'pkg-config'
+
+    [properties]
+    needs_exe_wrapper = true
+
+    [host_machine]
+    system = '${targetPlatform.parsed.kernel.name}'
+    cpu_family = '${targetPlatform.parsed.cpu.family}'
+    cpu = '${targetPlatform.parsed.cpu.name}'
+    endian = ${if targetPlatform.isLittleEndian then "'little'" else "'big'"}
+  '';
+
+  inherit (stdenv) cc isCross;
+
   meta = with lib; {
     homepage = http://mesonbuild.com;
     description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh
index eeffa6bf6cf9..341b1ff9e6eb 100644
--- a/pkgs/development/tools/build-managers/meson/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/meson/setup-hook.sh
@@ -6,11 +6,15 @@ mesonConfigurePhase() {
     fi
 
     # Build release by default.
-    mesonFlags="--buildtype=${mesonBuildType:-release} $mesonFlags"
+    if [ -n "@isCross@" ]; then
+      crossMesonFlags="--cross-file=@crossFile@/cross-file.conf"
+    fi
+
+    mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-release} $mesonFlags"
 
     echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
 
-    meson build $mesonFlags "${mesonFlagsArray[@]}"
+    CC=@cc@/bin/cc CXX=@cc@/bin/c++ meson build $mesonFlags "${mesonFlagsArray[@]}"
     cd build
 
     if ! [[ -v enableParallelBuilding ]]; then
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index 77944297a972..660917ee9f1f 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which pkgconfig perl ]
     # autogen needs a build autogen when cross-compiling
     ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      buildPackages.autogen buildPackages.texinfo ];
+      buildPackages.buildPackages.autogen buildPackages.texinfo ];
   buildInputs = [
     guile libxml2
   ];