revmc_build/lib.rs
1#![doc = include_str!("../README.md")]
2#![cfg_attr(not(test), warn(unused_extern_crates))]
3#![cfg_attr(docsrs, feature(doc_cfg))]
4
5// Must be kept in sync with `remvc-builtins`.
6const MANGLE_PREFIX: &str = "__revmc_builtin_";
7
8/// Emits the linker flag to export all the necessary symbols.
9pub fn emit() {
10 let target_vendor = std::env::var("CARGO_CFG_TARGET_VENDOR").unwrap();
11 let flag =
12 if target_vendor == "apple" { "-exported_symbol" } else { "--export-dynamic-symbol" };
13 println!("cargo:rustc-link-arg=-Wl,{flag},{MANGLE_PREFIX}*");
14}