diff options
author | figsoda <figsoda@pm.me> | 2021-10-26 22:41:37 -0400 |
---|---|---|
committer | figsoda <figsoda@pm.me> | 2021-10-27 08:08:03 -0400 |
commit | 5a08a28803d56b241e8f8d693ba6d8f9dbafe847 (patch) | |
tree | 77f3cc13e3657315ca75ac8980ca2a464e94096f /pkgs/build-support/rust | |
parent | b6a580b9b381bf8e614f73d781a85cf16ddd5109 (diff) | |
download | nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar.gz nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar.bz2 nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar.lz nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar.xz nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.tar.zst nixpkgs-5a08a28803d56b241e8f8d693ba6d8f9dbafe847.zip |
rustPlatform: add support for features
Diffstat (limited to 'pkgs/build-support/rust')
-rw-r--r-- | pkgs/build-support/rust/default.nix | 12 | ||||
-rw-r--r-- | pkgs/build-support/rust/hooks/cargo-build-hook.sh | 10 | ||||
-rw-r--r-- | pkgs/build-support/rust/hooks/cargo-check-hook.sh | 11 |
3 files changed, 32 insertions, 1 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 3d7057dd7d9..2cfd8d17286 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -36,6 +36,10 @@ , cargoLock ? null , cargoVendorDir ? null , checkType ? buildType +, buildNoDefaultFeatures ? false +, checkNoDefaultFeatures ? buildNoDefaultFeatures +, buildFeatures ? [ ] +, checkFeatures ? buildFeatures , depsExtraArgs ? {} # Toggles whether a custom sysroot is created when the target is a .json file. @@ -103,6 +107,14 @@ stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoLock" ]) // lib.o cargoCheckType = checkType; + cargoBuildNoDefaultFeatures = buildNoDefaultFeatures; + + cargoCheckNoDefaultFeatures = checkNoDefaultFeatures; + + cargoBuildFeatures = buildFeatures; + + cargoCheckFeatures = checkFeatures; + patchRegistryDeps = ./patch-registry-deps; nativeBuildInputs = nativeBuildInputs ++ [ diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh index c10120c5aa1..54ed765012b 100644 --- a/pkgs/build-support/rust/hooks/cargo-build-hook.sh +++ b/pkgs/build-support/rust/hooks/cargo-build-hook.sh @@ -13,6 +13,14 @@ cargoBuildHook() { cargoBuildProfileFlag="--${cargoBuildType}" fi + if [ -n "${cargoBuildNoDefaultFeatures-}" ]; then + cargoBuildNoDefaultFeaturesFlag=--no-default-features + fi + + if [ -n "${cargoBuildFeatures-}" ]; then + cargoBuildFeaturesFlag="--features=${cargoBuildFeatures// /,}" + fi + ( set -x env \ @@ -24,6 +32,8 @@ cargoBuildHook() { --target @rustTargetPlatformSpec@ \ --frozen \ ${cargoBuildProfileFlag} \ + ${cargoBuildNoDefaultFeaturesFlag} \ + ${cargoBuildFeaturesFlag} \ ${cargoBuildFlags} ) diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh index 8a8e434f0ff..57fc2779cfe 100644 --- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh +++ b/pkgs/build-support/rust/hooks/cargo-check-hook.sh @@ -20,7 +20,16 @@ cargoCheckHook() { cargoCheckProfileFlag="--${cargoCheckType}" fi - argstr="${cargoCheckProfileFlag} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}"; + if [ -n "${cargoCheckNoDefaultFeatures-}" ]; then + cargoCheckNoDefaultFeaturesFlag=--no-default-features + fi + + if [ -n "${cargoCheckFeatures-}" ]; then + cargoCheckFeaturesFlag="--features=${cargoCheckFeatures// /,}" + fi + + argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag} + --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}" ( set -x |