slint/internal/backends/qt/build.rs
Aurindam Jana 0cfeec1a31
Update Slint Community License (#4994)
Updated the version from 1.1 to 1.2 
Renamed the header to "Slint Royalty-free Desktop, Mobile, and Web Applications License"
Added definition of "Mobile Application" and grant of right
Moved "Limitations" to 3rd section and "License Conditions - Attributions" to 2nd section
Added flexibility to choose between showing "MadeWithSlint" as a dialog/splash screen or on a public webpage
Moved the para on copyright notices to section under "Limitations"
2024-04-15 15:18:55 +02:00

68 lines
2.9 KiB
Rust

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
// cSpell: ignore listviewitem stylemetrics
#[cfg(feature = "enable")]
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/progress_indicator.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/palette.rs");
println!("cargo:rerun-if-changed=qt_widgets/tabwidget.rs");
println!("cargo:rerun-if-changed=qt_widgets/tableheadersection.rs");
println!("cargo:rerun-if-changed=qt_window.rs");
println!("cargo:SUPPORTS_NATIVE_STYLE=1");
}
#[cfg(not(feature = "enable"))]
fn main() {
println!("cargo:rustc-cfg=no_qt");
return;
}