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.
* Examples for calling public functions in language-specific docs.
* Update the function example so it actually uses its parameter.
(This broke some c++ tests because of the unused argument warning)
Have a warning when a component is exported from the main file and
doesn't inherit Window.
Unless it's the last component, for compatibility with Slint 1.6
Also don't warn in the interpreter
The C++ build started failling with nightly rust:
https://github.com/rust-lang/rust/pull/125174 changed the output of
strignify! to contins more spaces between tokens, which we relied on to
perform some type substitution from Rust types to C++ types, resulting
in compilation errors:
```
build/api/cpp/generated_include/slint_builtin_structs_internal.h:71:5: error: ‘Option’ does not name a type
71 | Option < core :: ops :: Range < i32 >> replacement_range;
| ^~~~~~
build/api/cpp/generated_include/slint_builtin_structs_internal.h:75:14: error: ‘core’ was not declared in this scope
75 | Option < core :: ops :: Range < i32 >> preedit_selection;
| ^~~~
```
Workaround by cleaning whitespace before matching the types.
Commit 88e1a366a3 stabilized the rotation support and commit 1378d6e3bc adds new API to select rotation in the esp-idf integration.
The previous rotation parameter was behind the experimental flag. Now that we have a "cleaner" API, we might as well remove the old experiment in favor of the newer API.
This fix the C++ todo test that wasn't run because of a typo
When an element is optimized in another one, only the first one should
report the accessible properties. (because element with accessible
properties cannot be optimized so they are always the first)