50 lines
1.4 KiB
Rust
50 lines
1.4 KiB
Rust
use std::env;
|
|
use std::path::PathBuf;
|
|
|
|
fn main() {
|
|
#[cfg(target_os = "linux")]
|
|
{
|
|
// Check for X11 libraries
|
|
println!("cargo:rustc-link-lib=X11");
|
|
println!("cargo:rustc-link-lib=Xrandr");
|
|
println!("cargo:rustc-link-lib=Xinerama");
|
|
println!("cargo:rustc-link-lib=Xcursor");
|
|
println!("cargo:rustc-link-lib=Xi");
|
|
|
|
// Check for Wayland libraries (optional)
|
|
if env::var("CARGO_FEATURE_WAYLAND").is_ok() {
|
|
println!("cargo:rustc-link-lib=wayland-client");
|
|
println!("cargo:rustc-link-lib=wayland-egl");
|
|
}
|
|
|
|
// Set library search paths
|
|
let lib_paths = vec![
|
|
"/usr/lib/x86_64-linux-gnu",
|
|
"/usr/lib64",
|
|
"/usr/lib",
|
|
];
|
|
|
|
for path in lib_paths {
|
|
println!("cargo:rustc-link-search={}", path);
|
|
}
|
|
|
|
// Set pkg-config for better detection
|
|
if let Ok(pkg_config) = which::which("pkg-config") {
|
|
println!("cargo:rustc-env=PKG_CONFIG_PATH={}", pkg_config.display());
|
|
}
|
|
}
|
|
|
|
#[cfg(target_os = "windows")]
|
|
{
|
|
println!("cargo:rustc-link-lib=user32");
|
|
println!("cargo:rustc-link-lib=shell32");
|
|
println!("cargo:rustc-link-lib=gdi32");
|
|
}
|
|
|
|
#[cfg(target_os = "macos")]
|
|
{
|
|
println!("cargo:rustc-link-lib=framework=Cocoa");
|
|
println!("cargo:rustc-link-lib=framework=Foundation");
|
|
}
|
|
}
|