L. E. Segovia 2024-09-06 17:37:30 +00:00 committed by GStreamer Marge Bot
parent 5c39500308
commit 7eaf47d7b5
5 changed files with 55 additions and 0 deletions

2
Cargo.lock generated
View file

@ -547,6 +547,7 @@ dependencies = [
"pango",
"pangocairo",
"raw-window-handle",
"system-deps",
"uds",
"windows",
"winit",
@ -2447,6 +2448,7 @@ dependencies = [
"gstreamer-pbutils",
"gstreamer-video",
"objc",
"system-deps",
"termion",
]

View file

@ -56,6 +56,12 @@ windows = { version = "0.58", features=["Win32_Graphics_Direct3D11",
cocoa = "0.26"
objc = "0.2.7"
[target.'cfg(target_os = "macos")'.build-dependencies]
system-deps = "7"
[package.metadata.system-deps]
"gstreamer-1.0" = "1.14"
[build-dependencies]
gl_generator = { version = "0.14", optional = true }

View file

@ -19,4 +19,22 @@ fn generate_gl_bindings() {}
fn main() {
println!("cargo:rerun-if-changed=build.rs");
generate_gl_bindings();
// https://github.com/rust-lang/cargo/issues/5077#issuecomment-1284482987
#[cfg(all(not(docsrs), target_os = "macos"))]
match system_deps::Config::new().probe() {
Ok(deps) => {
let usr = std::path::Path::new("/usr/lib");
let usr_local = std::path::Path::new("/usr/local/lib");
for dep in deps.all_link_paths() {
if dep != &usr && dep != &usr_local {
println!("cargo:rustc-link-arg=-Wl,-rpath,{:?}", dep.as_os_str());
}
}
}
Err(s) => {
println!("cargo:warning={s}");
std::process::exit(1);
}
}
}

View file

@ -23,6 +23,12 @@ futures = "0.3"
cocoa = "0.26"
objc = "0.2.7"
[target.'cfg(target_os = "macos")'.build-dependencies]
system-deps = "7"
[package.metadata.system-deps]
"gstreamer-1.0" = "1.14"
[[bin]]
name = "basic-tutorial-13"
required-features = ["termion"]

23
tutorials/build.rs Normal file
View file

@ -0,0 +1,23 @@
#[cfg(docsrs)]
fn main() {} // prevent linking libraries to avoid documentation failure
// https://github.com/rust-lang/cargo/issues/5077#issuecomment-1284482987
#[cfg(not(docsrs))]
fn main() {
#[cfg(target_os = "macos")]
match system_deps::Config::new().probe() {
Ok(deps) => {
let usr = std::path::Path::new("/usr/lib");
let usr_local = std::path::Path::new("/usr/local/lib");
for dep in deps.all_link_paths() {
if dep != &usr && dep != &usr_local {
println!("cargo:rustc-link-arg=-Wl,-rpath,{:?}", dep.as_os_str());
}
}
}
Err(s) => {
println!("cargo:warning={s}");
std::process::exit(1);
}
}
}