diff options
author | Yegor Timoshenko <yegortimoshenko@transumption.com> | 2019-08-14 09:13:19 +0000 |
---|---|---|
committer | Yegor Timoshenko <yegortimoshenko@transumption.com> | 2019-08-15 08:44:54 +0000 |
commit | 0fcffe88db6713d67be4847d3727f143d5bf324b (patch) | |
tree | 86c674245829041ce7c010aefd73ec6c5f4e6093 /pkgs/build-support/rust | |
parent | ddf15d321f6679f82f34797533402b3ffd139352 (diff) | |
download | nixpkgs-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.nix | 16 |
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} ) |