diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-07-03 03:15:07 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-03 03:15:07 +0900 |
| commit | 45470a3bcd9f26017bcdbf4d5ae07be0d922ce93 (patch) | |
| tree | 29167ced0c208a4a3db02536ba335b05fb2a23ee /src | |
| parent | 851c82e88ade86bfe3b4ee785d5e5ab1d954b61c (diff) | |
| parent | 67e6a813159b5438507d4c24201e452a110a8284 (diff) | |
| download | rust-45470a3bcd9f26017bcdbf4d5ae07be0d922ce93.tar.gz rust-45470a3bcd9f26017bcdbf4d5ae07be0d922ce93.zip | |
Rollup merge of #84029 - drahnr:master, r=petrochenkov
add `track_path::path` fn for usage in `proc_macro`s Adds a way to declare a dependency on external files without including them, to either re-trigger the build of a file as well as covering the use case of including dependencies within the `rustc` invocation, such that tools like `sccache`/`cachepot` are able to handle references to external files which are not included. Ref #73921
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run-make/track-path-dep-info/Makefile | 13 | ||||
| -rw-r--r-- | src/test/run-make/track-path-dep-info/emojis.txt | 1 | ||||
| -rw-r--r-- | src/test/run-make/track-path-dep-info/macro_def.rs | 11 | ||||
| -rw-r--r-- | src/test/run-make/track-path-dep-info/macro_use.rs | 6 |
4 files changed, 31 insertions, 0 deletions
diff --git a/src/test/run-make/track-path-dep-info/Makefile b/src/test/run-make/track-path-dep-info/Makefile new file mode 100644 index 00000000000..465d3744789 --- /dev/null +++ b/src/test/run-make/track-path-dep-info/Makefile @@ -0,0 +1,13 @@ +-include ../../run-make-fulldeps/tools.mk + +# FIXME(eddyb) provide `HOST_RUSTC` and `TARGET_RUSTC` +# instead of hardcoding them everywhere they're needed. +ifeq ($(IS_MUSL_HOST),1) +ADDITIONAL_ARGS := $(RUSTFLAGS) +endif + +all: + # Proc macro + $(BARE_RUSTC) $(ADDITIONAL_ARGS) --out-dir $(TMPDIR) macro_def.rs + EXISTING_PROC_MACRO_ENV=1 $(RUSTC) --emit dep-info macro_use.rs + $(CGREP) "emojis.txt:" < $(TMPDIR)/macro_use.d diff --git a/src/test/run-make/track-path-dep-info/emojis.txt b/src/test/run-make/track-path-dep-info/emojis.txt new file mode 100644 index 00000000000..e1a728461f3 --- /dev/null +++ b/src/test/run-make/track-path-dep-info/emojis.txt @@ -0,0 +1 @@ +👾👾👾👾👾👾 diff --git a/src/test/run-make/track-path-dep-info/macro_def.rs b/src/test/run-make/track-path-dep-info/macro_def.rs new file mode 100644 index 00000000000..8777ce21f8b --- /dev/null +++ b/src/test/run-make/track-path-dep-info/macro_def.rs @@ -0,0 +1,11 @@ +#![feature(track_path)] +#![crate_type = "proc-macro"] + +extern crate proc_macro; +use proc_macro::*; + +#[proc_macro] +pub fn access_tracked_paths(_: TokenStream) -> TokenStream { + tracked_path::path("emojis.txt"); + TokenStream::new() +} diff --git a/src/test/run-make/track-path-dep-info/macro_use.rs b/src/test/run-make/track-path-dep-info/macro_use.rs new file mode 100644 index 00000000000..3c49fd05dd9 --- /dev/null +++ b/src/test/run-make/track-path-dep-info/macro_use.rs @@ -0,0 +1,6 @@ +#[macro_use] +extern crate macro_def; + +access_tracked_paths!(); + +fn main() {} |
