mirror of
https://github.com/slint-ui/slint.git
synced 2025-08-04 10:50:00 +00:00
C++: Use a static_assert to detect Slint version mismatch
cc #2909 , #223 New message: ``` /home/olivier/slint/build2/examples/gallery/gallery.h:6:73: error: static assertion failed: This file was generated with Slint compiler version 1.1.1, but the Slint library used is 1.1.0. The version numbers must match exactly. 6 | static_assert(1 == SLINT_VERSION_MAJOR && 1 == SLINT_VERSION_MINOR && 1 == SLINT_VERSION_PATCH, "This file was generated with Slint compiler version 1.1.1, but the Slint library used is " SLINT_VERSION_STRING ". The version numbers must match exactly."); /home/olivier/slint/build2/examples/gallery/gallery.h:6:73: note: the comparison reduces to ‘(1 == 0)’ ``` Previous message: ``` /home/olivier/slint/build2/examples/printerdemo/cpp/printerdemo.h:12218:161: error: conversion from ‘VersionCheckHelper<[...],[...],0>’ to non-scalar type ‘VersionCheckHelper<[...],[...],1>’ requested 12218 | [[maybe_unused]] constexpr slint::private_api::VersionCheckHelper<1, 1, 1> THE_SAME_VERSION_MUST_BE_USED_FOR_THE_COMPILER_AND_THE_RUNTIME = slint::private_api::VersionCheckHelper<SLINT_VERSION_MAJOR, SLINT_VERSION_MINOR, SLINT_VERSION_PATCH>(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/olivier/slint/build2/examples/printerdemo/cpp/printerdemo.h:12218:161: error: could not convert ‘slint::private_api::VersionCheckHelper<1, 1, 0>()’ from ‘VersionCheckHelper<[...],[...],0>’ to ‘VersionCheckHelper<[...],[...],1>’ 12218 | [[maybe_unused]] constexpr slint::private_api::VersionCheckHelper<1, 1, 1> THE_SAME_VERSION_MUST_BE_USED_FOR_THE_COMPILER_AND_THE_RUNTIME = slint::private_api::VersionCheckHelper<SLINT_VERSION_MAJOR, SLINT_VERSION_MINOR, SLINT_VERSION_PATCH>(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | VersionCheckHelper<[...],[...],0> ```
This commit is contained in:
parent
6c5f6da473
commit
331e5713c2
3 changed files with 23 additions and 19 deletions
|
@ -435,20 +435,23 @@ fn gen_corelib(
|
|||
.with_src(crate_dir.join("graphics/image.rs"))
|
||||
.with_include("slint_string.h")
|
||||
.with_after_include(format!(
|
||||
r"
|
||||
r#"
|
||||
/// This macro expands to the to the numeric value of the major version of Slint you're
|
||||
/// developing against. For example if you're using version 1.5.2, this macro will expand to 1.
|
||||
#define SLINT_VERSION_MAJOR {}
|
||||
#define SLINT_VERSION_MAJOR {x}
|
||||
/// This macro expands to the to the numeric value of the minor version of Slint you're
|
||||
/// developing against. For example if you're using version 1.5.2, this macro will expand to 5.
|
||||
#define SLINT_VERSION_MINOR {}
|
||||
#define SLINT_VERSION_MINOR {y}
|
||||
/// This macro expands to the to the numeric value of the patch version of Slint you're
|
||||
/// developing against. For example if you're using version 1.5.2, this macro will expand to 2.
|
||||
#define SLINT_VERSION_PATCH {}
|
||||
",
|
||||
env!("CARGO_PKG_VERSION_MAJOR"),
|
||||
env!("CARGO_PKG_VERSION_MINOR"),
|
||||
env!("CARGO_PKG_VERSION_PATCH"),
|
||||
#define SLINT_VERSION_PATCH {z}
|
||||
/// This macro expands to the string representation of the version of Slint you're developing against.
|
||||
/// For example if you're using version 1.5.2, this macro will expand to "1.5.2".
|
||||
#define SLINT_VERSION_STRING "{x}.{y}.{z}"
|
||||
"#,
|
||||
x = env!("CARGO_PKG_VERSION_MAJOR"),
|
||||
y = env!("CARGO_PKG_VERSION_MINOR"),
|
||||
z = env!("CARGO_PKG_VERSION_PATCH"),
|
||||
))
|
||||
.generate()
|
||||
.context("Unable to generate bindings for slint_generated_public.h")?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue