rust: allow building in debug or release modes
This commit is contained in:
parent
60761e65ba
commit
bdd3c3fdcb
@ -13,11 +13,13 @@
|
|||||||
, cargoUpdateHook ? ""
|
, cargoUpdateHook ? ""
|
||||||
, cargoDepsHook ? ""
|
, cargoDepsHook ? ""
|
||||||
, cargoBuildFlags ? []
|
, cargoBuildFlags ? []
|
||||||
|
, buildType ? "release"
|
||||||
|
|
||||||
, cargoVendorDir ? null
|
, cargoVendorDir ? null
|
||||||
, ... } @ args:
|
, ... } @ args:
|
||||||
|
|
||||||
assert cargoVendorDir == null -> cargoSha256 != "unset";
|
assert cargoVendorDir == null -> cargoSha256 != "unset";
|
||||||
|
assert buildType == "release" || buildType == "debug";
|
||||||
|
|
||||||
let
|
let
|
||||||
cargoDeps = if cargoVendorDir == null
|
cargoDeps = if cargoVendorDir == null
|
||||||
@ -42,7 +44,7 @@ let
|
|||||||
cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
|
cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
|
||||||
ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
|
ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
|
||||||
cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
|
cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
|
||||||
releaseDir = "target/${stdenv.hostPlatform.config}/release";
|
releaseDir = "target/${stdenv.hostPlatform.config}/${buildType}";
|
||||||
|
|
||||||
in stdenv.mkDerivation (args // {
|
in stdenv.mkDerivation (args // {
|
||||||
inherit cargoDeps;
|
inherit cargoDeps;
|
||||||
@ -98,7 +100,7 @@ in stdenv.mkDerivation (args // {
|
|||||||
"CC_${stdenv.hostPlatform.config}"="${ccForHost}" \
|
"CC_${stdenv.hostPlatform.config}"="${ccForHost}" \
|
||||||
"CXX_${stdenv.hostPlatform.config}"="${cxxForHost}" \
|
"CXX_${stdenv.hostPlatform.config}"="${cxxForHost}" \
|
||||||
cargo build \
|
cargo build \
|
||||||
--release \
|
--${buildType} \
|
||||||
--target ${stdenv.hostPlatform.config} \
|
--target ${stdenv.hostPlatform.config} \
|
||||||
--frozen ${concatStringsSep " " cargoBuildFlags}
|
--frozen ${concatStringsSep " " cargoBuildFlags}
|
||||||
)
|
)
|
||||||
@ -106,7 +108,7 @@ in stdenv.mkDerivation (args // {
|
|||||||
# rename the output dir to a architecture independent one
|
# rename the output dir to a architecture independent one
|
||||||
mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$')
|
mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$')
|
||||||
for target in "''${targets[@]}"; do
|
for target in "''${targets[@]}"; do
|
||||||
rm -rf "$target/../../release"
|
rm -rf "$target/../../${buildType}"
|
||||||
ln -srf "$target" "$target/../../"
|
ln -srf "$target" "$target/../../"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user