Add VST3 option
This commit is contained in:
57
build.rs
57
build.rs
@@ -1,3 +1,56 @@
|
||||
fn main() {
|
||||
//helpers::copy_artifact_to_out_dir("airfreshener", "AirFreshener");
|
||||
use std::{env, fs, path::Path};
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
const CONFIG: &str = "debug";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const CONFIG: &str = "release";
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
const OS_LIB_EXT: &str = "dylib";
|
||||
#[cfg(target_os = "windows")]
|
||||
const OS_LIB_EXT: &str = "dll";
|
||||
#[cfg(target_os = "linux")]
|
||||
const OS_LIB_EXT: &str = "so";
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
const OS_NAME: &str = "macOS";
|
||||
#[cfg(target_os = "windows")]
|
||||
const OS_NAME: &str = "Windows";
|
||||
#[cfg(target_os = "linux")]
|
||||
const OS_NAME: &str = "Linux";
|
||||
|
||||
fn get_output_lib_name(lib_name: &str) -> &'static str {
|
||||
match lib_name {
|
||||
"airfreshener" => "AirFreshener",
|
||||
_ => "Unknown",
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let target_dir = Path::new(&env::var("CARGO_MANIFEST_DIR").unwrap_or("".to_owned()))
|
||||
.join(format!("target/{CONFIG}"));
|
||||
let artifact_dir = target_dir.join("deps/artifact");
|
||||
|
||||
let artifact_dirs =
|
||||
fs::read_dir(artifact_dir).expect("Failed to read build artifact directory");
|
||||
for dir_result in artifact_dirs {
|
||||
if let Ok(dir) = dir_result {
|
||||
if let Some(lib_name) = dir.file_name().to_string_lossy().split('-').next() {
|
||||
let lib_path = dir
|
||||
.path()
|
||||
.join(format!("cdylib/lib{lib_name}.{OS_LIB_EXT}"));
|
||||
if fs::exists(&lib_path).unwrap_or_default() {
|
||||
let out_lib_name = get_output_lib_name(lib_name);
|
||||
let out_lib_path = target_dir.join(format!("{out_lib_name}_{OS_NAME}.clap"));
|
||||
if let Err(err) = fs::copy(&lib_path, &out_lib_path) {
|
||||
println!(
|
||||
"cargo::error=Output library lib{lib_name:?}.{OS_LIB_EXT} could not be copied to target: {err}"
|
||||
);
|
||||
}
|
||||
} else {
|
||||
println!("cargo::error=Output library lib{lib_name:?}.{OS_LIB_EXT} not found");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user