RustForge

foundry

Foundry OS: the operating system built on the Rustbelt kernel

foundry / rust / rbrt / build.rs
596 bytes ยท raw
1
2
3
4
5
6
7
8
9
10
11
12
//! Shared build script for every Foundry OS Rust program (each package's
//! Cargo.toml says `build = "../rbrt/build.rs"`). It only tells the linker
//! to use rust/link.ld, which puts the program at 0x80_0040_0000.
use std::{env, path::PathBuf};

fn main() {
    let manifest = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
    let ld = manifest.join("../link.ld").canonicalize().expect("rust/link.ld missing");
    println!("cargo:rustc-link-arg=-T{}", ld.display());
    println!("cargo:rerun-if-changed={}", ld.display());
    println!("cargo:rerun-if-changed=../rbrt/ulib.rs");
}