|
1 | | -use vergen_gitcl::{BuildBuilder, CargoBuilder, Emitter, GitclBuilder, RustcBuilder}; |
| 1 | +// NOTE: This WallhackBuildEnv impl is duplicated in crates/mcp/build.rs. |
| 2 | +// build.rs files cannot share code via library crates. |
| 3 | +use std::collections::BTreeMap; |
2 | 4 |
|
3 | | -fn main() -> Result<(), Box<dyn std::error::Error>> { |
4 | | - // PROFILE is a standard Cargo build env var; emit it for use via env!() in source. |
5 | | - println!( |
6 | | - "cargo:rustc-env=WALLHACK_BUILD_PROFILE={}", |
7 | | - std::env::var("PROFILE").unwrap_or_else(|_| "unknown".to_string()) |
8 | | - ); |
| 5 | +use vergen_gitcl::{ |
| 6 | + AddCustomEntries, BuildBuilder, CargoRerunIfChanged, CargoWarning, DefaultConfig, Emitter, |
| 7 | + GitclBuilder, |
| 8 | +}; |
| 9 | + |
| 10 | +#[derive(Default)] |
| 11 | +struct WallhackBuildEnv; |
| 12 | + |
| 13 | +impl AddCustomEntries<&str, &str> for WallhackBuildEnv { |
| 14 | + fn add_calculated_entries( |
| 15 | + &self, |
| 16 | + _idempotent: bool, |
| 17 | + cargo_rustc_env_map: &mut BTreeMap<&str, &str>, |
| 18 | + _cargo_rerun_if_changed: &mut CargoRerunIfChanged, |
| 19 | + _cargo_warning: &mut CargoWarning, |
| 20 | + ) -> anyhow::Result<()> { |
| 21 | + let profile = std::env::var("PROFILE").unwrap_or_else(|_| "unknown".to_string()); |
| 22 | + cargo_rustc_env_map.insert( |
| 23 | + "WALLHACK_BUILD_PROFILE", |
| 24 | + Box::leak(profile.into_boxed_str()), |
| 25 | + ); |
| 26 | + Ok(()) |
| 27 | + } |
9 | 28 |
|
| 29 | + fn add_default_entries( |
| 30 | + &self, |
| 31 | + _config: &DefaultConfig, |
| 32 | + _cargo_rustc_env_map: &mut BTreeMap<&str, &str>, |
| 33 | + _cargo_rerun_if_changed: &mut CargoRerunIfChanged, |
| 34 | + _cargo_warning: &mut CargoWarning, |
| 35 | + ) -> anyhow::Result<()> { |
| 36 | + Ok(()) |
| 37 | + } |
| 38 | +} |
| 39 | + |
| 40 | +fn main() -> Result<(), Box<dyn std::error::Error>> { |
10 | 41 | Emitter::default() |
11 | 42 | .add_instructions(&BuildBuilder::default().build_timestamp(true).build()?)? |
12 | 43 | .add_instructions(&GitclBuilder::default().sha(true).dirty(true).build()?)? |
13 | | - .add_instructions( |
14 | | - &CargoBuilder::default() |
15 | | - .target_triple(true) |
16 | | - .features(true) |
17 | | - .build()?, |
18 | | - )? |
19 | | - .add_instructions(&RustcBuilder::default().semver(true).build()?)? |
| 44 | + .add_custom_instructions(&WallhackBuildEnv)? |
20 | 45 | .emit()?; |
21 | 46 | Ok(()) |
22 | 47 | } |
0 commit comments