Freestanding implies the lack of windowing system presence and therefore the choice of say Cupertino when building on macOS is not good.
Fluent isn't quite a great choice right now either, as it's not very touch friendly, but it's a compromise :)
This reverts commit 42571bbddb.
The line-by-line renderer doesn't compile with xcode 15.4,
and TestWindowAdapter doesn't compile with gcc 10 in the linux CI.
While we haven't settled on the debug info feature and are
merely controlling it via environment variable, setting that can be very hard - especially when using Yocto.
To make life easier, let's do in C++ what we can't easily do for Rust but would like to:
When enabling system testing, automatically emit the necessary debug info, by setting the environment variable when calling the compiler.
This is done by adding SLINT_ENABLED_FEATURES and SLINT_DISABLED_FEATURES properties
on the Slint::Slint target that - as lists - export the list of features and their status.
This way we can compile Slint in once place and safely in the CMake code running in application
scope check about the available features.
CPACK_SYSTEM_NAME is what we used before, and that has the win64 suffix
that the prepare_release job in nightly_snapshot.yaml expects. Also
fixed the docs to add the missing MSVC suffix that's new.
Cargo disallows dashes in library target names (lib.name in Cargo.toml), but when not set it uses
the package name. That meant that dashes snuck in and https://github.com/rust-lang/cargo/pull/12783 fixes that.
The targets Corrosion creates correspond to the library name, so after that change it's slint_cpp.
To make this work with stable cargo, explicitly switch lib.name to slint_cpp.
The version number is not set, so the package name would end up as
Slint-cpp---MSVC.exe. Instead, just append the MSVC suffix, as
suggested by Olivier.
Amends cacc13343f
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"
A MSRV update is required to update the image crate to 0.25, otherwise
we get link error that are ficed in newer version.
Also other dependency update such as env_logger needs a newer MSRV.
Update to 1.73 because it has functions like `with_borrow` on thread
storage which we already actually use in some platform.
This is also the last release before the the drop of macOs < 10.12
in Rust 1.74
- Bump esp-backtrace for esp32-p4 support, which removes the uart feature and delegates to esp-println
- Added esp-println dependency
- Add mapping for ESP32P4 and other risc-v esp-idf targets to the corresponding rust target triplet.
Unfortunately there's no generic pattern like for xtensa, as can be seen on
https://github.com/esp-rs/esp-idf-sys?tab=readme-ov-file#examples
We have a nice FFI-compatible wrapper areound rust timers in C++, so
allow to use that in other types exported to C++.
This also makes sure the rust and C++ side agree on the size of the
type, with the nice side effect that the rust Timer now uses half as
much space now as it did before.
Commit 79b70782b4 was supposed to do this.
- Remove now unused Qt license file bunding from prepare_binary_package.sh
- Remove CMake Qt bundling option
As per commit 69feb7f0f40cc8dc4ca52777cf87a4c879d4b953 in meta-slint and
others, the Skia build is tricky because clang needs to be indirectly
and carefully instructed where gcc headers are located. In the Yocto
recipes, we go through lengths to set CLANGCC/CLANGXX correctly so that
the --target matches the triplet sub-directories in
recipe-sysroot/usr/lib and recipe-sysroot/usr/include/c++/$ver/ .
For aarch64 it's simple, there's usually just aarch64-$distro-linux, but
for example for armv7-$distro-linux-gnueabihf magic has to come
together: The gcc install dir is typically
recipe-sysroot/usr/lib/arm-$distro-linux-gnueabi (note the v7 and hf
absence). That means that's what --target needs to be when invoking
clang. But now the `hf` suffix is gone, which means clang relies on for
example -mfloat-abi=hard to avoid the use of gnu soft-float stubs. All
that's meticulously prepared in the Yocto recipe and placed for easy
consumption in CLANGCC/CLANGCXX environment variables. Therefore, when
those environment variables are set, don't overwrite them in
CORROSION_ENVIRONMENT_VARIABLES.when those environment variables are
set, don't overwrite them in CORROSION_ENVIRONMENT_VARIABLES.
This reverts commit 292f487815.
Olivier had the brilliant idea of preceeding the path with a slash
on the Yocto side, so we can go back to the correct "type".
This reverts commit 0773e51d92.
By the SLINT_COMPILER being a `FILEPATH`, cmake will convert any
relative path to an absolute path. That's not wanted for the Yocto
build, because there we pass
'$ENV{OECORE_NATIVE_SYSROOT}/usr/bin/slint-compiler', so that
the path is resolved dynamically against the environment variable that
the Yocto SDK sets.
CMake would convert this to an absolute path that points into the build
directory, i.e. it would be /home/blah/foo/\$ENV{...}