difftreelog
feat(xtask) auto-target
in: master
3 files changed
xtask/Cargo.tomldiffbeforeafterboth--- a/xtask/Cargo.toml
+++ b/xtask/Cargo.toml
@@ -3,6 +3,7 @@
version = "0.1.0"
edition = "2021"
publish = false
+build = "build.rs"
[lints]
workspace = true
xtask/build.rsdiffbeforeafterboth--- /dev/null
+++ b/xtask/build.rs
@@ -0,0 +1,7 @@
+fn main() {
+ println!(
+ "cargo:rustc-env=TARGET_PLATFORM={}",
+ &std::env::var("TARGET").unwrap()
+ );
+ println!("cargo:rerun-if-changed-env=TARGET");
+}
xtask/src/main.rsdiffbeforeafterboth16 callgrind: bool,16 callgrind: bool,17 #[arg(long)]17 #[arg(long)]18 cachegrind: bool,18 cachegrind: bool,19 #[arg(long, default_value = "x86_64-unknown-linux-gnu")]19 #[arg(long, default_value = env!("TARGET_PLATFORM"))]20 target: String,20 target: String,21 args: Vec<String>,21 args: Vec<String>,22 },22 },26 #[arg(long)]26 #[arg(long)]27 fix: bool,27 fix: bool,28 },28 },29 /// Build and run test file from `bindings/c`29 TestCBindings {30 TestCBindings {30 #[arg(long, default_value = "x86_64-unknown-linux-gnu")]31 #[arg(long, default_value = env!("TARGET_PLATFORM"))]31 target: String,32 target: String,33 /// Which bindings file to build and run34 #[arg(long, default_value = "libjsonnet_test_file")]35 test_file: String,32 args: Vec<String>,36 args: Vec<String>,33 },37 },34}38}80 }84 }81 Opts::TestCBindings { target, args } => {85 Opts::TestCBindings {86 target,87 test_file,88 args,89 } => {82 cmd!(90 cmd!(83 sh,91 sh,86 .run()?;94 .run()?;87 let built = format!("./target/{target}/release/libjsonnet.a");95 let built = format!("./target/{target}/release/libjsonnet.a");88 let c_bindings = "./bindings/c/";96 let c_bindings = "./bindings/c/";89 let test_file = "libjsonnet_test_file";90 cmd!(sh, "cp {built} {c_bindings}").run()?;97 cmd!(sh, "cp {built} {c_bindings}").run()?;91 sh.change_dir(c_bindings);98 sh.change_dir(c_bindings);9299