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

difftreelog

feat(xtask) auto-target

Yaroslav Bolyukin2024-05-28parent: #934a80c.patch.diff
in: master

3 files changed

modifiedxtask/Cargo.tomldiffbeforeafterboth
3version = "0.1.0"3version = "0.1.0"
4edition = "2021"4edition = "2021"
5publish = false5publish = false
6build = "build.rs"
67
7[lints]8[lints]
8workspace = true9workspace = 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
--- a/xtask/src/main.rs
+++ b/xtask/src/main.rs
@@ -16,7 +16,7 @@
 		callgrind: bool,
 		#[arg(long)]
 		cachegrind: bool,
-		#[arg(long, default_value = "x86_64-unknown-linux-gnu")]
+		#[arg(long, default_value = env!("TARGET_PLATFORM"))]
 		target: String,
 		args: Vec<String>,
 	},
@@ -26,9 +26,13 @@
 		#[arg(long)]
 		fix: bool,
 	},
+	/// Build and run test file from `bindings/c`
 	TestCBindings {
-		#[arg(long, default_value = "x86_64-unknown-linux-gnu")]
+		#[arg(long, default_value = env!("TARGET_PLATFORM"))]
 		target: String,
+		/// Which bindings file to build and run
+		#[arg(long, default_value = "libjsonnet_test_file")]
+		test_file: String,
 		args: Vec<String>,
 	},
 }
@@ -78,7 +82,11 @@
 			cmd!(sh, "cargo fmt {fmt_check...}").run()?;
 			Ok(())
 		}
-		Opts::TestCBindings { target, args } => {
+		Opts::TestCBindings {
+			target,
+			test_file,
+			args,
+		} => {
 			cmd!(
 				sh,
 				"cargo build -p libjsonnet --target={target} --release --no-default-features --features=interop-common,interop-threading"
@@ -86,7 +94,6 @@
 			.run()?;
 			let built = format!("./target/{target}/release/libjsonnet.a");
 			let c_bindings = "./bindings/c/";
-			let test_file = "libjsonnet_test_file";
 			cmd!(sh, "cp {built} {c_bindings}").run()?;
 			sh.change_dir(c_bindings);