git.delta.rocks / jrsonnet / refs/commits / c3d1c4f39003

difftreelog

ci bindings launch helper

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

2 files changed

modifiedCargo.lockdiffbeforeafterboth
507507
508[[package]]508[[package]]
509name = "jrsonnet-gcmodule"509name = "jrsonnet-gcmodule"
510version = "0.3.6"510version = "0.3.7"
511source = "registry+https://github.com/rust-lang/crates.io-index"511source = "registry+https://github.com/rust-lang/crates.io-index"
512checksum = "c11fb98940a7f8b419619e98ccbf2e094671a5fdd0e277f05acd373071186d57"512checksum = "47975473b24b4503acee0d449fd5eda04ae18828f9811828a6cc99abbbbc38c8"
513dependencies = [513dependencies = [
514 "jrsonnet-gcmodule-derive",514 "jrsonnet-gcmodule-derive",
515 "parking_lot",515 "parking_lot",
516]516]
517517
518[[package]]518[[package]]
519name = "jrsonnet-gcmodule-derive"519name = "jrsonnet-gcmodule-derive"
520version = "0.3.6"520version = "0.3.7"
521source = "registry+https://github.com/rust-lang/crates.io-index"521source = "registry+https://github.com/rust-lang/crates.io-index"
522checksum = "6bee774b7ba86fc86ee84482cd6732aa860ae3559f9827c65efd75c51e66ac76"522checksum = "4782d1d76731f5e5bb4bdeff26ed3350f21d662f178ce6dee7b4da810e7a8f72"
523dependencies = [523dependencies = [
524 "proc-macro2",524 "proc-macro2",
525 "quote",525 "quote",
526 "syn 1.0.109",526 "syn 2.0.64",
527]527]
528528
529[[package]]529[[package]]
635dependencies = [635dependencies = [
636 "jrsonnet-evaluator",636 "jrsonnet-evaluator",
637 "jrsonnet-gcmodule",637 "jrsonnet-gcmodule",
638 "jrsonnet-interner",
638 "jrsonnet-parser",639 "jrsonnet-parser",
639 "jrsonnet-stdlib",640 "jrsonnet-stdlib",
640]641]
780781
781[[package]]782[[package]]
782name = "parking_lot"783name = "parking_lot"
783version = "0.12.2"784version = "0.12.3"
784source = "registry+https://github.com/rust-lang/crates.io-index"785source = "registry+https://github.com/rust-lang/crates.io-index"
785checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"786checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
786dependencies = [787dependencies = [
787 "lock_api",788 "lock_api",
788 "parking_lot_core",789 "parking_lot_core",
modifiedxtask/src/main.rsdiffbeforeafterboth
26 #[arg(long)]26 #[arg(long)]
27 fix: bool,27 fix: bool,
28 },28 },
29 TestCBindings {
30 #[arg(long, default_value = "x86_64-unknown-linux-gnu")]
31 target: String,
32 args: Vec<String>,
33 },
29}34}
3035
31fn main() -> Result<()> {36fn main() -> Result<()> {
73 cmd!(sh, "cargo fmt {fmt_check...}").run()?;78 cmd!(sh, "cargo fmt {fmt_check...}").run()?;
74 Ok(())79 Ok(())
75 }80 }
81 Opts::TestCBindings { target, args } => {
82 cmd!(
83 sh,
84 "cargo build -p libjsonnet --target={target} --release --no-default-features --features=interop-common,interop-threading"
85 )
86 .run()?;
87 let built = format!("./target/{target}/release/libjsonnet.a");
88 let c_bindings = "./bindings/c/";
89 let test_file = "libjsonnet_test_file";
90 cmd!(sh, "cp {built} {c_bindings}").run()?;
91 sh.change_dir(c_bindings);
92
93 // TODO: Pass target to gcc?
94 cmd!(sh, "gcc -c {test_file}.c").run()?;
95 cmd!(sh, "gcc -o {test_file} -lc -lm {test_file}.o libjsonnet.a").run()?;
96 let sh = Shell::new()?;
97
98 cmd!(sh, "{c_bindings}{test_file} {args...}").run()?;
99
100 Ok(())
101 }
76 }102 }
77}103}
78104