git.delta.rocks / jrsonnet / refs/commits / 1086a510584b

difftreelog

feat(xtask) auto-target

Yaroslav Bolyukin2024-06-18parent: #934a80c.patch.diff
in: master

3 files changed

modifiedxtask/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
addedxtask/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");
+}
modifiedxtask/src/main.rsdiffbeforeafterboth
16 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 run
34 #[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