slint/internal/backends/qt/build.rs
Tobias Hunger 5199556e9d Watch groupbox.rs for changes (due to use of cpp! macros)
Also make sure all files containing the cpp! macro are actually listed
and the list is sorted for easier comparison.
2022-07-27 10:14:05 +02:00

58 lines
2.6 KiB
Rust

// Copyright © SixtyFPS GmbH <info@slint-ui.com>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
// cSpell: ignore combobox groupbox lineedit listviewitem scrollview spinbox stylemetrics
fn main() {
println!("cargo:rerun-if-env-changed=SLINT_NO_QT");
if std::env::var("TARGET").map_or(false, |t| t.starts_with("wasm"))
|| std::env::var("SLINT_NO_QT").is_ok()
{
println!("cargo:rustc-cfg=no_qt");
return;
}
if std::env::var("DEP_QT_FOUND").unwrap() != "1" {
println!("cargo:rustc-cfg=no_qt");
println!(
"cargo:warning=Could not find a Qt installation. The Qt backend will not be functional. \
See https://github.com/slint-ui/slint/blob/master/docs/install_qt.md for more info"
);
println!("cargo:warning= {}", std::env::var("DEP_QT_ERROR_MESSAGE").unwrap());
return;
}
let qt_version = std::env::var("DEP_QT_VERSION").unwrap();
if !qt_version.starts_with("5.15") && !qt_version.starts_with("6.") {
println!("cargo:rustc-cfg=no_qt");
println!(
"cargo:warning=Qt {} is not supported, you need at least Qt 5.15. The Qt backend will not be functional. \
See https://github.com/slint-ui/slint/blob/master/docs/install_qt.md for more info",
qt_version
);
return;
}
let mut config = cpp_build::Config::new();
for f in std::env::var("DEP_QT_COMPILE_FLAGS").unwrap().split_terminator(';') {
config.flag(f);
}
config.flag_if_supported("-std=c++17");
config.flag_if_supported("/std:c++17");
config.include(std::env::var("DEP_QT_INCLUDE_PATH").unwrap()).build("lib.rs");
println!("cargo:rerun-if-changed=lib.rs");
println!("cargo:rerun-if-changed=qt_accessible.rs");
println!("cargo:rerun-if-changed=qt_widgets.rs");
println!("cargo:rerun-if-changed=qt_widgets/button.rs");
println!("cargo:rerun-if-changed=qt_widgets/checkbox.rs");
println!("cargo:rerun-if-changed=qt_widgets/combobox.rs");
println!("cargo:rerun-if-changed=qt_widgets/groupbox.rs");
println!("cargo:rerun-if-changed=qt_widgets/lineedit.rs");
println!("cargo:rerun-if-changed=qt_widgets/listviewitem.rs");
println!("cargo:rerun-if-changed=qt_widgets/scrollview.rs");
println!("cargo:rerun-if-changed=qt_widgets/slider.rs");
println!("cargo:rerun-if-changed=qt_widgets/spinbox.rs");
println!("cargo:rerun-if-changed=qt_widgets/stylemetrics.rs");
println!("cargo:rerun-if-changed=qt_widgets/tabwidget.rs");
println!("cargo:rerun-if-changed=qt_window.rs");
println!("cargo:SUPPORTS_NATIVE_STYLE=1");
}