diff --git a/polkadot/node/overseer/overseer-gen/proc-macro/build.rs b/polkadot/node/overseer/overseer-gen/proc-macro/build.rs new file mode 100644 index 0000000000000000000000000000000000000000..ebc4e5d75ab58d165fde683e8868afe5d998158e --- /dev/null +++ b/polkadot/node/overseer/overseer-gen/proc-macro/build.rs @@ -0,0 +1,2 @@ +/// A dummy build script, so `OUT_DIR` is set. +fn main() {} diff --git a/polkadot/node/overseer/overseer-gen/proc-macro/src/lib.rs b/polkadot/node/overseer/overseer-gen/proc-macro/src/lib.rs index 1a0634b297203724806133f9e10c900b4635316a..1c7d32d6449fe6b15812d8b54e9342a381b766d4 100644 --- a/polkadot/node/overseer/overseer-gen/proc-macro/src/lib.rs +++ b/polkadot/node/overseer/overseer-gen/proc-macro/src/lib.rs @@ -98,12 +98,12 @@ pub(crate) fn impl_overseer_gen( additive.extend(impl_message_wrapper_enum(&info)?); additive.extend(impl_dispatch(&info)); - #[cfg(feature = "expansion")] - { + if cfg!(feature = "expansion") { use std::io::Write; - let cwd = std::env::current_dir().unwrap(); - let path: std::path::PathBuf = cwd.join("overlord-expansion.rs"); + let out = env!("OUT_DIR"); + let out = std::path::PathBuf::from(out); + let path = out.join("overlord-expansion.rs"); let mut f = std::fs::OpenOptions::new() .write(true) .create(true) @@ -117,9 +117,15 @@ pub(crate) fn impl_overseer_gen( std::process::Command::new("rustfmt") .arg("--edition=2018") .arg(&path) - .current_dir(cwd) + .current_dir(out) .spawn() .expect("Running rustfmt works. qed"); + + let path = path.display().to_string(); + Ok(quote! { + include!( #path ); + }) + } else { + Ok(additive) } - Ok(additive) }