aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-semihosting/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cortex-m-semihosting/build.rs')
-rw-r--r--cortex-m-semihosting/build.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/cortex-m-semihosting/build.rs b/cortex-m-semihosting/build.rs
new file mode 100644
index 0000000..5fc6a04
--- /dev/null
+++ b/cortex-m-semihosting/build.rs
@@ -0,0 +1,23 @@
+use std::path::PathBuf;
+use std::{env, fs};
+
+fn main() {
+ let target = env::var("TARGET").unwrap();
+ let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
+ let name = env::var("CARGO_PKG_NAME").unwrap();
+
+ if target.starts_with("thumbv") {
+ if env::var_os("CARGO_FEATURE_INLINE_ASM").is_none() {
+ fs::copy(
+ format!("../bin/{}.a", target),
+ out_dir.join(format!("lib{}.a", name)),
+ )
+ .unwrap();
+
+ println!("cargo:rustc-link-lib=static={}", name);
+ println!("cargo:rustc-link-search={}", out_dir.display());
+ }
+
+ println!("cargo:rustc-cfg=thumb");
+ }
+}