diff --git a/src/libbuild_zynq/lib.rs b/src/libbuild_zynq/lib.rs index 6e5c851..7bb0aef 100644 --- a/src/libbuild_zynq/lib.rs +++ b/src/libbuild_zynq/lib.rs @@ -1,5 +1,22 @@ +use std::env; use std::fs::File; -use std::io::{BufRead, BufReader}; +use std::io::{BufRead, BufReader, Write}; +use std::path::PathBuf; + + +pub fn add_linker_script() { + // Put the linker script somewhere the linker can find it + let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); + File::create(out.join("link.x")) + .unwrap() + .write_all(include_bytes!("link.x")) + .unwrap(); + println!("cargo:rustc-link-search={}", out.display()); + + // Only re-run the build script when link.x is changed, + // instead of when any part of the source code changes. + println!("cargo:rerun-if-changed=link.x"); +} pub fn cfg() { // Handle rustc-cfg file diff --git a/src/runtime/link.x b/src/libbuild_zynq/link.x similarity index 100% rename from src/runtime/link.x rename to src/libbuild_zynq/link.x diff --git a/src/runtime/build.rs b/src/runtime/build.rs index 04ead8d..aee092b 100644 --- a/src/runtime/build.rs +++ b/src/runtime/build.rs @@ -1,21 +1,6 @@ -use std::env; -use std::fs::File; -use std::io::Write; -use std::path::PathBuf; - extern crate build_zynq; fn main() { - // Put the linker script somewhere the linker can find it - let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); - File::create(out.join("link.x")) - .unwrap() - .write_all(include_bytes!("link.x")) - .unwrap(); - println!("cargo:rustc-link-search={}", out.display()); - - // Only re-run the build script when link.x is changed, - // instead of when any part of the source code changes. - println!("cargo:rerun-if-changed=link.x"); + build_zynq::add_linker_script(); build_zynq::cfg(); } diff --git a/src/satman/build.rs b/src/satman/build.rs index 3f823ec..aee092b 100644 --- a/src/satman/build.rs +++ b/src/satman/build.rs @@ -1,21 +1,6 @@ -use std::env; -use std::fs::File; -use std::io::Write; -use std::path::PathBuf; - extern crate build_zynq; fn main() { - // Put the linker script somewhere the linker can find it - let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); - File::create(out.join("link.x")) - .unwrap() - .write_all(include_bytes!("../runtime/link.x")) - .unwrap(); - println!("cargo:rustc-link-search={}", out.display()); - - // Only re-run the build script when link.x is changed, - // instead of when any part of the source code changes. - println!("cargo:rerun-if-changed=../runtime/link.x"); + build_zynq::add_linker_script(); build_zynq::cfg(); }