mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-29 21:34:50 +00:00
![]() The objective is to automatically create a propery cmake module, with a FindSixtyFPSConfig.cmake, corresponding targets .cmake files, etc. This should encapsulate the build profile (debug vs. release) and also allow making the choice of shared vs. static transparent. Unfortunately it does not seem to be possible to easily combine different crates into one cdylib crate that can re-export symbols from the statically linked rust crates (cbindgen generated, as well as manual extern "C"). That means for the dynamic case (not cared for right now), we're going to need to create either one cdylib per crate that has public symbols or manually re-export the symbols. For the static case, linking just against the "last crate" in the chain (the gl renderer backend) is sufficient to pull in all needed symbols. In addition for the static case we need to specify the linkage of some external libraries. This can be extracted manually via cargo rustc -p gl -- --print=native-static-libs for example. For now that's in the changed CMakeLists.txt, but the plan going forward is to automate this extraction in an xtask, to paste that into the cmake target. Finally, both linkage scenarios require access to the headers. This is for now solved by generating them simply in an include sub-directory of the build folder ($root/target/${profile}/include). |
||
---|---|---|
.. | ||
.gitignore | ||
CMakeLists.txt | ||
hello.60 | ||
main.cpp |