summary refs log tree commit diff
path: root/pkgs/build-support/rust
diff options
context:
space:
mode:
authorYegor Timoshenko <yegortimoshenko@transumption.com>2019-08-14 09:13:19 +0000
committerYegor Timoshenko <yegortimoshenko@transumption.com>2019-08-15 08:44:54 +0000
commit0fcffe88db6713d67be4847d3727f143d5bf324b (patch)
tree86c674245829041ce7c010aefd73ec6c5f4e6093 /pkgs/build-support/rust
parentddf15d321f6679f82f34797533402b3ffd139352 (diff)
downloadnixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar.gz
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar.bz2
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar.lz
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar.xz
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.tar.zst
nixpkgs-0fcffe88db6713d67be4847d3727f143d5bf324b.zip
buildRustPackage: support cross-compilation to x86_64-pc-mingw32
Diffstat (limited to 'pkgs/build-support/rust')
-rw-r--r--pkgs/build-support/rust/default.nix16
1 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index 6afe93c7e4c..e354bd6710d 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -41,12 +41,20 @@ let
       cargoDepsCopy="$sourceRoot/${cargoVendorDir}"
     '';
 
+  hostConfig = stdenv.hostPlatform.config;
+
+  rustHostConfig = {
+    "x86_64-pc-mingw32" = "x86_64-pc-windows-gnu";
+  }."${hostConfig}" or hostConfig;
+
   ccForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
   cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
   ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
   cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
-  releaseDir = "target/${stdenv.hostPlatform.config}/${buildType}";
-in stdenv.mkDerivation (args // {
+  releaseDir = "target/${rustHostConfig}/${buildType}";
+in
+
+stdenv.mkDerivation (args // {
   inherit cargoDeps;
 
   patchRegistryDeps = ./patch-registry-deps;
@@ -84,7 +92,7 @@ in stdenv.mkDerivation (args // {
     [target."${stdenv.buildPlatform.config}"]
     "linker" = "${ccForBuild}"
     ${stdenv.lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
-    [target."${stdenv.hostPlatform.config}"]
+    [target."${rustHostConfig}"]
     "linker" = "${ccForHost}"
     ''}
     EOF
@@ -104,7 +112,7 @@ in stdenv.mkDerivation (args // {
       "CXX_${stdenv.hostPlatform.config}"="${cxxForHost}" \
       cargo build \
         ${stdenv.lib.optionalString (buildType == "release") "--release"} \
-        --target ${stdenv.hostPlatform.config} \
+        --target ${rustHostConfig} \
         --frozen ${concatStringsSep " " cargoBuildFlags}
     )