use std::env;
use std::process::Command;
fn main() {
let work_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let out_dir = env::var("OUT_DIR").unwrap();
eprintln!("out_dir: {}",out_dir);
#[cfg(not(feature="family-selected"))]
let platform_subdir = "cmsis_freertos_stm32f4";
#[cfg(feature = "stm32f3x")]
let platform_subdir = "cmsis_freertos_stm32f3";
#[cfg(feature = "stm32f4x")]
let platform_subdir = "cmsis_freertos_stm32f4";
#[cfg(feature = "stm32f7x")]
let platform_subdir = "cmsis_freertos_stm32f7";
#[cfg(feature = "stm32h7x")]
let platform_subdir = "cmsis_freertos_stm32h7";
let platform_dir = format!("{}/platforms/{}", work_dir, platform_subdir);
eprintln!("platform_dir: {}",platform_dir);
println!("cargo:rerun-if-changed={}",platform_dir);
#[cfg(not(feature="dbgsym"))]
let (debug_flag, opt_flag) = ("DEBUG=0", "OPT=-O1");
#[cfg(feature="dbgsym")]
let (debug_flag, opt_flag) = ("DEBUG=1", "OPT=-Og");
let lib_out_dir = format!("{}/freertos_build",out_dir);
let build_dir = format!("BUILD_DIR={}",lib_out_dir);
Command::new("make")
.current_dir(platform_dir.clone())
.arg(debug_flag)
.arg(opt_flag)
.arg(build_dir)
.output()
.expect("make failed ");
println!("cargo:rustc-link-search={}", lib_out_dir.clone());
println!("cargo:rustc-link-lib=cmsis_rtos2");
}