mirror of
https://github.com/gyroflow/gyroflow.git
synced 2026-07-04 15:06:45 +00:00
Update handling of env variables in build.rs
This commit is contained in:
+1
-1
@@ -114,7 +114,7 @@ install-deps:
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "{{FFmpeg}}" ]; then
|
||||
if [ ! -d "$FFMPEG_DIR" ]; then
|
||||
echo "Downloading ffmpeg"
|
||||
|
||||
# Download and extract ffmpeg
|
||||
|
||||
@@ -192,19 +192,25 @@ fn main() {
|
||||
|
||||
match target_os.as_str() {
|
||||
"android" => {
|
||||
println!("cargo:rustc-link-search={}/lib/arm64-v8a", std::env::var("FFMPEG_DIR").unwrap());
|
||||
println!("cargo:rustc-link-search={}/lib", std::env::var("FFMPEG_DIR").unwrap());
|
||||
config.include(format!("{}/include", std::env::var("FFMPEG_DIR").unwrap()));
|
||||
if let Ok(ffmpeg_dir) = std::env::var("FFMPEG_DIR") && !ffmpeg_dir.is_empty() {
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}/lib/arm64-v8a");
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}/lib");
|
||||
config.include(format!("{ffmpeg_dir}/include"));
|
||||
}
|
||||
},
|
||||
"macos" | "ios" => {
|
||||
println!("cargo:rustc-link-search={}/lib", std::env::var("FFMPEG_DIR").unwrap());
|
||||
if let Ok(ffmpeg_dir) = std::env::var("FFMPEG_DIR") && !ffmpeg_dir.is_empty() {
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}/lib");
|
||||
}
|
||||
println!("cargo:rustc-link-lib=static:+whole-archive=x264");
|
||||
println!("cargo:rustc-link-lib=static=x265");
|
||||
},
|
||||
"linux" => {
|
||||
println!("cargo:rustc-link-search={}", std::env::var("OPENCV_LINK_PATHS").unwrap());
|
||||
println!("cargo:rustc-link-search={}/lib/{}", std::env::var("FFMPEG_DIR").unwrap(), std::env::var("FFMPEG_ARCH").unwrap_or("amd64".into()));
|
||||
println!("cargo:rustc-link-search={}/lib", std::env::var("FFMPEG_DIR").unwrap());
|
||||
if let Ok(ffmpeg_dir) = std::env::var("FFMPEG_DIR") && !ffmpeg_dir.is_empty() {
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}/lib/{}", std::env::var("FFMPEG_ARCH").unwrap_or("amd64".into()));
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}/lib");
|
||||
}
|
||||
println!("cargo:rustc-link-lib=static:+whole-archive=z");
|
||||
if std::env::var("OPENCV_LINK_PATHS").unwrap_or_default().contains("vcpkg") {
|
||||
std::env::var("OPENCV_LINK_LIBS").unwrap().split(',').for_each(|lib| println!("cargo:rustc-link-lib=static:+whole-archive={}", lib.trim()));
|
||||
@@ -216,8 +222,10 @@ fn main() {
|
||||
println!("cargo:rustc-link-arg=/EXPORT:NvOptimusEnablement");
|
||||
println!("cargo:rustc-link-arg=/EXPORT:AmdPowerXpressRequestHighPerformance");
|
||||
println!("cargo:rustc-link-search={}", std::env::var("OPENCV_LINK_PATHS").unwrap());
|
||||
println!("cargo:rustc-link-search={}\\lib\\{}", std::env::var("FFMPEG_DIR").unwrap(), std::env::var("FFMPEG_ARCH").unwrap_or("x64".into()));
|
||||
println!("cargo:rustc-link-search={}\\lib", std::env::var("FFMPEG_DIR").unwrap());
|
||||
if let Ok(ffmpeg_dir) = std::env::var("FFMPEG_DIR") && !ffmpeg_dir.is_empty() {
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}\\lib\\{}", std::env::var("FFMPEG_ARCH").unwrap_or("x64".into()));
|
||||
println!("cargo:rustc-link-search={ffmpeg_dir}\\lib");
|
||||
}
|
||||
let mut res = winres::WindowsResource::new();
|
||||
res.set_icon("resources/app_icon.ico");
|
||||
res.set("FileVersion", env!("CARGO_PKG_VERSION"));
|
||||
@@ -229,6 +237,12 @@ fn main() {
|
||||
tos => panic!("unknown target os {:?}!", tos)
|
||||
}
|
||||
|
||||
if let Ok(link_paths) = std::env::var("EXTRA_LINK_PATHS") && !link_paths.is_empty() {
|
||||
for dir in link_paths.split(';') {
|
||||
println!("cargo:rustc-link-search={dir}");
|
||||
}
|
||||
}
|
||||
|
||||
if let Ok(time) = std::time::SystemTime::now().duration_since(std::time::SystemTime::UNIX_EPOCH) {
|
||||
println!("cargo:rustc-env=BUILD_TIME={}", (time.as_secs() - 1642516578) / 600); // New version every 10 minutes
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user