From 656d9953957fd9e1751d6d204696aa1192242136 Mon Sep 17 00:00:00 2001 From: Lann Martin Date: Fri, 19 Jul 2024 11:12:20 -0400 Subject: [PATCH] factors: Add build script for factors smoke test app Signed-off-by: Lann Martin --- Cargo.lock | 1 + crates/factors/Cargo.toml | 3 +++ crates/factors/build.rs | 19 +++++++++++++++++++ crates/factors/tests/smoke-app/spin.toml | 8 ++------ 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 crates/factors/build.rs diff --git a/Cargo.lock b/Cargo.lock index aa48f93f9a..e4bd2fdc64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7631,6 +7631,7 @@ name = "spin-factors" version = "2.7.0-pre0" dependencies = [ "anyhow", + "cargo-target-dep", "http 1.1.0", "http-body-util", "serde 1.0.197", diff --git a/crates/factors/Cargo.toml b/crates/factors/Cargo.toml index 7306e5294f..3efbb2e02d 100644 --- a/crates/factors/Cargo.toml +++ b/crates/factors/Cargo.toml @@ -31,5 +31,8 @@ tokio = { version = "1", features = ["macros", "rt", "sync"] } toml = "0.8" wasmtime-wasi-http = { workspace = true } +[build-dependencies] +cargo-target-dep = { git = "https://github.com/fermyon/cargo-target-dep", rev = "482f269eceb7b1a7e8fc618bf8c082dd24979cf1" } + [lints] workspace = true diff --git a/crates/factors/build.rs b/crates/factors/build.rs new file mode 100644 index 0000000000..aadff64b43 --- /dev/null +++ b/crates/factors/build.rs @@ -0,0 +1,19 @@ +use std::path::Path; + +use cargo_target_dep::build_target_dep; + +fn main() { + println!("cargo:rerun-if-changed=build.rs"); + // Enable spin-factors-derive to emit expanded macro output. + let out_dir = std::env::var("OUT_DIR").unwrap(); + println!("cargo:rustc-env=SPIN_FACTORS_DERIVE_EXPAND_DIR={out_dir}"); + + let root = "tests/smoke-app"; + build_target_dep(root, Path::new("tests/smoke-app/target/smoke_app.wasm")) + .release() + .target("wasm32-wasi") + .build(); + println!("cargo:rerun-if-changed={root}/Cargo.toml"); + println!("cargo:rerun-if-changed={root}/Cargo.lock"); + println!("cargo:rerun-if-changed={root}/src"); +} diff --git a/crates/factors/tests/smoke-app/spin.toml b/crates/factors/tests/smoke-app/spin.toml index a800b49fe9..6ae716fe00 100644 --- a/crates/factors/tests/smoke-app/spin.toml +++ b/crates/factors/tests/smoke-app/spin.toml @@ -15,11 +15,7 @@ route = "/..." component = "smoke-app" [component.smoke-app] -source = "target/wasm32-wasi/release/smoke_app.wasm" +source = "target/smoke_app.wasm" allowed_outbound_hosts = ["https://{{ host }}"] key_value_stores = ["default"] -variables = { "other" = "<{{ other }}>"} - -[component.smoke-app.build] -command = "cargo build --target wasm32-wasi --release" -watch = ["src/**/*.rs", "Cargo.toml"] +variables = { "other" = "<{{ other }}>"} \ No newline at end of file