Commit graph

81 commits

Author SHA1 Message Date
Simon Hausmann
481288d489 Initial support for rendering with Skia and Vulkan
Closes #1546
2023-05-09 08:58:35 +02:00
ogoffart
dfd5fc38b3 Bump version number to 1.0.3 2023-04-26 14:04:08 +00:00
ogoffart
53cce5bf44 Bump version number to 1.0.2 2023-04-26 11:33:16 +02:00
ogoffart
bd63218412 Bump version number to 1.0.1 2023-04-18 14:56:40 +00:00
Simon Hausmann
7e08231650 C++: Enable /bigobj by default when building with MSVC
Large C++ files generated from .slint files can cause link problems with MSVC.
When that happens, MSVC itself suggests /bigobj as remedy.

It's not apparent that there's a downside to using this option, apart from
backwaords binary compatibility - which is not a concern for us.

The discussion at https://developercommunity.visualstudio.com/t/Enable-bigobj-by-default/1031214 suggests that perhaps this
will become the default one day.

To simplify our examples and avoid users running into this, let's enable it by default.
2023-04-14 13:13:03 +02:00
Simon Hausmann
08c0f1b34e Clean up hack to detect if we're doing a top-level build
... by introducing an explicit variable.

cc #2075
2023-04-04 09:06:38 +02:00
Simon Hausmann
13a5d3c5cd Fix builds of applications using Slint via FetchContent (part 2)
Amend 8406e1050d by fixing the condition
to apply the install_name when the cache variable used to detect package
builds is defined, not _not_ defined.

cc #2075
2023-04-03 17:36:34 +02:00
Simon Hausmann
8406e1050d Fix builds of applications using Slint via FetchContent
Set install_name to include rpath as per commit
916b927f4f only when doing top-level
builds that are meant to be installed via "make install".

cc #2075
2023-04-03 17:01:47 +02:00
Simon Hausmann
916b927f4f macOS: Fix installed libslint_cpp.dylib containing references to the build directory
Thanks to @jschwe, there's a way to instruct corrosion to supply link
flags that set the install name and work around cargo/rustc behavior.

In exchange, now that we're using rpath, to be able to continue to run
the tests and examples against a build tree, we need to set
CMAKE_BUILD_RPATH.

Fixes #2075
2023-04-03 15:59:01 +02:00
Simon Hausmann
714a91e928 cmake: Add the SLINT_FEATURE_RENDERER_WINIT_SOFTWARE option to enable the software renderer 2023-03-31 08:58:04 +02:00
Tobias Hunger
6934b7b779 cmake: Fix SLINT_EMBED_RESOURCES
* Do not use the initialize_from feature introduced in cmake 3.23
2023-03-27 16:18:05 +02:00
Tobias Hunger
52a70b7d89 cmake: Bump minimal cmake version to 3.23 2023-03-27 09:27:44 +02:00
Jyotirmoy Roy
f376741167
Rename BUILD_TESTING cache variable to SLINT_BUILD_TESTING #2362 (#2364)
Rename BUILD_TESTING cache variable to SLINT_BUILD_TESTING

Fixes #2362
2023-03-12 10:33:44 +01:00
Olivier Goffart
4df25b7f15 Janitor: upgrade corrosion 2023-03-09 09:14:34 +01:00
Simon Hausmann
2d878de7ac Bump corrosion
Fixes #2245
2023-02-17 16:46:49 +01:00
Simon Hausmann
aee97b475e janitor: remove dead CMake code 2023-02-16 13:53:20 +01:00
Olivier Goffart
fd6c80a590 Set MSRV to 1.66 2023-02-16 09:03:22 +01:00
ogoffart
e7f48512ee Bump version number to 1.0.0 2023-02-03 11:07:15 +01:00
Olivier Goffart
83ea50761a Janitor: upgrade corrosion 2023-01-19 11:48:28 +01:00
Olivier Goffart
8d0cdc6ec2 C++: cmake: move the build instruction for the tests in the tests dir 2023-01-17 10:21:11 +01:00
ogoffart
ce07d078ce Bump version number to 0.3.4 2022-12-16 09:36:15 +00:00
Simon Hausmann
c4d5f079b5 Partial fix for cmake build with Skia against Yocto
Latest corrosion handles quoting differently and would escape the empty quoted
string, so pass an empty string instead, for the host cflags.
2022-12-14 11:40:03 +01:00
Simon Hausmann
a63c7bcada Use the fresh new corrosion release 2022-12-13 12:10:16 +01:00
Simon Hausmann
61dc5e31b4 Fix running of tests with multi-config generators
Now that the binaries are placed in their respective
CMAKE_RUNTIME_OUTPUT_DIRECTORY, that's config suffixed, let's use the
ctest signature that accepts a cmake target and thus automatically
figures out the correct location of the executable.
2022-12-13 11:39:34 +01:00
Simon Hausmann
3e5aa212d5 Remove workaround for slint DLL placement for examples
We can now use the standard CMake variables to make sure that a copy of
the DLL lands next to the executables for Windows.
2022-12-13 11:39:34 +01:00
Simon Hausmann
53b05c426c Upgrade corrision to a git snapshot
This includes support for placing build artefacts into output directories
using standard cmake variables.
2022-12-13 11:39:34 +01:00
Olivier Goffart
8d686637f4
Experimental platform API from C++ 2022-12-12 12:54:31 +01:00
Simon Hausmann
7e77a2a4cc Bump MSRV to 1.64
... due to rust-skia bindings requiring a feature (ffi related).
2022-12-04 19:39:35 +01:00
ogoffart
fb02b4118b Bump version number to 0.3.3 2022-11-28 13:11:11 +00:00
Simon Hausmann
4308ed921d
Add documentation about the available widget styles and how to select them (#1910) 2022-11-25 14:53:20 +01:00
Simon Hausmann
e9db914fb1
Add is_visible to NodeJS and C++ Window types (#1816)
Amends commit 82278a5742
2022-11-04 16:24:24 +01:00
Jonathan Schwender
4ade9faa0d Update Corrosion to v0.3
This requires the following changes:
- Delay configuring SlintConfig.cmake:
  Corrosion sets the `IMPORTED` locations late to allow us to set
  OUTPUT_DIRECTORY target properties. The configuration of
  SlintConfig.cmake must be deferred until after Corrosion set the
  locations. Since we are writing to a config file Generator expressions
  are not an option.
- Remove BUILD_TYPE mapping from SlintConfig.cmake:
  As discussed in https://github.com/slint-ui/slint/pull/1785#issuecomment-1294630845
  remove the mapping of the build types since corrosion now always sets
  the `IMPORTED_LOCATION` property.

User facing improvements enabled by the update:
- Corrosion will not fail anymore if the user has a Rust toolchain >=1.60
  installed, but the default toolchain is < 1.60.
- Corrosion will respect OUTPUT_DIRECTORY properties and move target
  artifacts to the expected locations
2022-11-02 21:38:39 +01:00
ogoffart
2171773a3e Bump version number to 0.3.2 2022-10-28 09:30:14 +00:00
Olivier Goffart
0ba468c236 Use a builtin function to access the dark-style
instead of a property on NativeStyleMetrics
2022-10-19 15:23:41 +02:00
Simon Hausmann
5b95466fa6
Add a C++ Filter Model class (#1685)
Add a C++ Filter Model class

This matches the FilterModel in the Rust API.
2022-09-27 10:24:47 +02:00
Simon Hausmann
a24c33b8ea Fix Yocto cross build
After renaming the features, the if conditions need to be adjusted.
2022-09-23 14:12:21 +02:00
Simon Hausmann
f54cebf3d6 Don't build Skia with CMake by default
We also don't build it with Cargo by default
2022-09-22 12:56:18 +02:00
ogoffart
261614b914 Bump version number to 0.3.1 2022-09-15 14:39:51 +02:00
Olivier Goffart
8850959a2c Rename the backend feature flags 2022-09-07 17:11:57 +02:00
ogoffart
05a49da906 Bump version number to 0.3.0 2022-09-06 13:00:22 +02:00
Simon Hausmann
3a1817de3f Skia: Make it possible to explicitly select the OpenGL backend of Skia
When opting into the Skia renderer, we default to metal on macOS and D3D on Windows.
However if you want to develop a cross-platform application with Skia and
for example rely on OpenGL to be able to implement an OpenGL underlay or overlay,
then we need the ability to explicitly opt into skia's GL renderer.

cc #1445
2022-09-05 14:07:27 +02:00
Olivier Goffart
5900ec3373 Janitor: update corrosion 2022-09-01 14:03:46 +02:00
Simon Hausmann
a7121a6177 Remove erroneous mention of SLINT_FEATURE_EVENTLOOP_WINIT_ALL
We used to have SLINT_FEATURE_BACKEND_GL_ALL, but when we introduced the
renderer and event loop distinction in the features, we removed the "all" suffix from
the event loop that includes x11 and wayland support.
2022-09-01 11:25:49 +02:00
Simon Hausmann
c69437fe8f Fix build of CMake package inside Yocto build
When building against a Yocto SDK, CFLAGS isn't set, only CC. When
building inside Yocto, CC is set to just the target compiler and CFLAGS
contains the target specific options. Just like with commit
5bc56a3924 we need to cover also
HOST_CFLAGS by making them empty.
2022-08-19 17:02:30 +02:00
Simon Hausmann
5bc56a3924 Fix Skia cross-build when using CMake
This requires a creative workaround :-)
2022-08-04 16:41:26 +02:00
Simon Hausmann
771b122198 Add skia renderer skeleton
This one can render basically just plain rectangles.
2022-08-02 12:00:56 +02:00
Simon Hausmann
70a753756d Fix cmake compat options
Use option() directly, not propagate that into the cpp crate
2022-07-26 17:43:51 +02:00
Simon Hausmann
b47eb8507a Remove the rtti-winit and rtti-qt features
These are not needed anymore, as the selector can enable the respective rtti features
in the winit and gl crate when its own rtti features is enabled.
2022-07-26 17:43:51 +02:00
Simon Hausmann
3619989fcc Rename backend feature flags to accomodate more renderers
Split backend-gl-* into eventloop-winit-* and renderer-femtovg.

The old feature names are still available.

For consistency eventloop-qt and renderer-qt are aliases for backend-qt.
2022-07-26 17:43:51 +02:00
Simon Hausmann
27bf9348e6 Rename the backend-gl crate into backend-winit 2022-07-26 17:43:51 +02:00