Hi, I am currently looking into updating the Yocto packaging for Plasma 5.24 and hitting some cross-compile dependency problems, where I would like to shortly discuss how to best solve them (I will gladly provide patches ;) ).
Background: Let's say I want to build kwin for a **target** system like a raspberry pi (ARM) on my **native** system (x86). Then for every executable that is called during the configuration, build or install process, I must build that application for my native system. Currently in Plasma there are two of those (super small) executables that make by life a challenge: - kwin: kwin-strip-effect-metadata - kwayland-server: qtwaylandscanner The problems is, that both applications (even if they are only a single cpp file) pull in all configuration requirements of the main project at configuration time. This not only takes much time when building those dependencies, but at least in the Yocto world people never expected that anybody builds those package (e.g. QtQuick, X11Extras, QuickWidgets) as dependencies for command line only toolchain tools for the native architecture. Thus, it is not practical to meet every one of e.g. kwin's configuration requirements when just building kwin-strip-effect-metadata. I see a few options to go: a) split those tools into separate repositories with only their minimal configuration and build dependencies b) slightly reorganize the existing repositories to have a stand alone included CMake project inside the main project. that way, I could point CMake simply to a subfolder and configure that one. The subfolder's CMakeLists.txt then would exactly define the dependencies for that helper tool. c) reorganize the CMakeLists.txt in the root directory such that one could pass build options like "ONLY_BUILD_HOST_TOOLS" My personal favorite is probably b) because it looks to me to be the least amount of refactoring. I am looking forward to what you think! Cheers, Andreas