diff options
Diffstat (limited to 'crates/flasher-qt/build.rs')
| -rw-r--r-- | crates/flasher-qt/build.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/crates/flasher-qt/build.rs b/crates/flasher-qt/build.rs new file mode 100644 index 0000000..e4bdfc2 --- /dev/null +++ b/crates/flasher-qt/build.rs @@ -0,0 +1,25 @@ +fn main() { + println!("cargo:rerun-if-changed=src/ui.cpp"); + + let qt = pkg_config::Config::new() + .atleast_version("5.12") + .cargo_metadata(false) + .probe("Qt5Widgets") + .expect("Qt 5 Widgets development files were not found (install qt5-base-devel)"); + + let mut build = cc::Build::new(); + build.cpp(true).file("src/ui.cpp").flag_if_supported("-std=c++17"); + for path in &qt.include_paths { + build.include(path); + } + build.compile("flasher_qt_ui"); + + // Keep shared Qt libraries after our static C++ archive on the linker + // command line; GNU ld resolves static archives from left to right. + for path in &qt.link_paths { + println!("cargo:rustc-link-search=native={}", path.display()); + } + println!("cargo:rustc-link-lib=Qt5Widgets"); + println!("cargo:rustc-link-lib=Qt5Gui"); + println!("cargo:rustc-link-lib=Qt5Core"); +} |