use std::env;
use system_deps::Config;
fn main() {
let deps = Config::new()
.probe()
.expect("Qt6 base library is not installed! Install qt6-base-dev or visit https://qt.io/");
let mut build = cxx_build::bridge("src/ffi.rs");
for (_name, lib) in &deps {
for include_path in &lib.include_paths {
build.include(include_path);
}
for link_lib in &lib.libs {
build.flag(&format!("-l{}", link_lib));
}
}
if env::var("CARGO_FEATURE_UI").is_ok() {
let ui_lib = pkg_config::Config::new()
.atleast_version("6.0")
.probe("Qt6UiTools")
.expect("Qt6UiTools not found. Install qt6-tools-dev");
for path in &ui_lib.include_paths {
build.include(path);
}
build.flag("-lQt6UiTools");
build.flag("-DQTRS_HAS_UI");
}
build.include(".");
build.include("src/cpp");
build.file("src/cpp/qt_widget.cpp").compile("qtrs");
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=src/ffi.rs");
println!("cargo:rerun-if-changed=src/cpp/qt_widget.cpp");
for name in &["signal", "app", "widget", "button", "label", "input",
"checkbox", "combobox", "textedit", "slider", "timer",
"layout", "dialog", "uiloader", "progress"] {
println!("cargo:rerun-if-changed=src/cpp/{}.h", name);
}
}