build: pre-cook full Qt stack in dependency order (fixes Qt6Qml race)
sddm and the kf6 modules (pulled by kwin) do find_package(Qt6Qml)/Qt6Quick, which only exist once qtdeclarative is built. When resolved only transitively during the parallel make-live graph, a consumer (qtwayland, kf6-kwindowsystem) could be cooked before qtdeclarative published Qt6Qml -> "Could not find a package configuration file provided by Qt6Qml" -> whole build aborts (exit 2). Pre-cook qtbase qtshadertools qtdeclarative qtsvg qtwayland (in order) before sddm/kwin so every Qt6 CMake config is cached in the sysroot first. Complements the qtwayland->qtdeclarative recipe dep; covers all kf6 consumers at once.
This commit is contained in:
@@ -912,7 +912,15 @@ bash "$PROJECT_ROOT/local/scripts/sync-versions.sh" --check || {
|
||||
# llvm21 is a Mesa (graphics) dep — only needed when the Mesa chain is in scope.
|
||||
echo ">>> Pre-cooking critical packages..."
|
||||
if [ "$CONFIG" = "redbear-full" ]; then
|
||||
PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt sddm qtbase kwin"
|
||||
# The Qt stack has a strict internal build order (qtbase -> qtshadertools ->
|
||||
# qtdeclarative -> qtsvg -> qtwayland) and downstream consumers (sddm, the
|
||||
# kf6 modules pulled by kwin) do find_package(Qt6Qml)/find_package(Qt6Quick).
|
||||
# If these are only resolved transitively during the parallel `make live`
|
||||
# graph, a consumer can be cooked before qtdeclarative publishes Qt6Qml and
|
||||
# configure fails ("Could not find a package configuration file provided by
|
||||
# Qt6Qml"), aborting the whole build. Pre-cook the Qt stack IN ORDER, before
|
||||
# sddm/kwin, so every Qt6 CMake package is cached in the sysroot first.
|
||||
PRECOOK_PKGS="relibc icu llvm21 mesa libdrm libepoxy redox-drm lcms2 libdisplay-info libxcvt qtbase qtshadertools qtdeclarative qtsvg qtwayland sddm kwin"
|
||||
else
|
||||
PRECOOK_PKGS="relibc icu"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user