mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-27 04:10:28 +00:00
28 lines
873 B
Rust
28 lines
873 B
Rust
use std::{env, error::Error, fs, path::PathBuf};
|
|
|
|
use esp_metadata_generated::Chip;
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
// Determine the name of the configured device:
|
|
let chip = Chip::from_cargo_feature()?;
|
|
|
|
// Define all necessary configuration symbols for the configured device:
|
|
chip.define_cfgs();
|
|
|
|
// Copy the required linker script to the `out` directory:
|
|
let source_file = match chip {
|
|
Chip::Esp32c6 => "ld/link-lp.x",
|
|
Chip::Esp32s2 | Chip::Esp32s3 => "ld/link-ulp.x",
|
|
_ => unreachable!(),
|
|
};
|
|
|
|
// Put the linker script somewhere the linker can find it:
|
|
let out = PathBuf::from(env::var_os("OUT_DIR").unwrap());
|
|
println!("cargo:rustc-link-search={}", out.display());
|
|
fs::copy(source_file, out.join("link.x"))?;
|
|
println!("cargo:rerun-if-changed=ld/link-ulp.x");
|
|
|
|
// Done!
|
|
Ok(())
|
|
}
|