43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
use std::{env, fs::{self, read_dir}, path::PathBuf};
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
tauri_build::build();
|
|
|
|
let out_dir = PathBuf::from(env::var("OUT_DIR")?);
|
|
|
|
let profile_target_dir = out_dir
|
|
.ancestors()
|
|
.nth(3)
|
|
.ok_or("Failed to determine profile target directory from OUT_DIR")?;
|
|
|
|
println!(
|
|
"cargo:info=Build script running for target OS: {}",
|
|
env::var("CARGO_CFG_TARGET_OS").unwrap_or_default()
|
|
);
|
|
println!(
|
|
"cargo:info=Final libraries will be copied to: {}",
|
|
profile_target_dir.display()
|
|
);
|
|
|
|
// --- Define libraries and their source locations based on OS ---
|
|
let target_os = env::var("CARGO_CFG_TARGET_OS")?;
|
|
|
|
let source_subdir = if target_os == "windows" {
|
|
"lib/win64"
|
|
} else if target_os == "linux" {
|
|
"lib/linux64"
|
|
} else if target_os == "macos" {
|
|
"lib/osx"
|
|
} else {
|
|
return Err("Unsupported target".into());
|
|
};
|
|
|
|
for f in read_dir(source_subdir)? {
|
|
let f = f?;
|
|
println!("cargo:rerun-if-changed={}", f.path().display());
|
|
fs::copy(f.path(), profile_target_dir.join(f.file_name()))?;
|
|
}
|
|
|
|
Ok(())
|
|
}
|