diff options
author | Andreas Rammhold <andreas@rammhold.de> | 2020-03-17 16:33:13 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-04-12 16:56:35 +0000 |
commit | 80e83d83758cafa1e27f6b8469eea5afc45de59c (patch) | |
tree | 0c5ce580ebb6b1e02654b4adcb2498f5c785f484 /pkgs/build-support/rust/build-rust-crate | |
parent | 1b980d7c7aef13cd25b1dd346e407ad9706c2155 (diff) | |
download | nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar.gz nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar.bz2 nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar.lz nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar.xz nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.tar.zst nixpkgs-80e83d83758cafa1e27f6b8469eea5afc45de59c.zip |
buildRustCrate: support proc-macro in default prelude
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate')
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate/build-crate.nix | 3 | ||||
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate/test/default.nix | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix index 9759235e30e..d6d1cebb2e9 100644 --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix @@ -16,6 +16,9 @@ ++ [crateFeatures] ++ extraRustcOpts ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTarget stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc" + # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude + # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022 + ++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro" ; rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix index fba938f6237..50ac12cab60 100644 --- a/pkgs/build-support/rust/build-rust-crate/test/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix @@ -412,6 +412,17 @@ let "test ignore_main ... ok" ]; }; + procMacroInPrelude = { + procMacro = true; + src = symlinkJoin { + name = "proc-macro-in-prelude"; + paths = [ + (mkFile "src/lib.rs" '' + use proc_macro::TokenTree; + '') + ]; + }; + }; }; brotliCrates = (callPackage ./brotli-crates.nix {}); tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases; |