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