Toolchain Helper Tools for Cross-Compiling

Andreas Cord-Landwehr cordlandwehr at kde.org
Sat Feb 19 16:16:27 GMT 2022


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




More information about the Plasma-devel mailing list