# qqc2-breeze-style 6.7.2 — el estilo Breeze para QtQuick Controls 2. Segundo de los cuatro huecos de # RUNTIME del triaje de la frontera: ninguna receta lo pide para construir, pero sin él los controles # QML de Plasma (botones, sliders, combos, menús de los applets y de los KCM) se dibujan con el estilo # genérico de Qt en vez del de Plasma. No lo reemplaza qqc2-desktop-style: ese es el estilo de # escritorio genérico integrado con KStyle; éste es la implementación QML nativa de Breeze, que es la # que Plasma 6 usa por defecto (y la única que corre sin QWidget debajo). # # ── ES DE PLASMA, NO DE FRAMEWORKS ───────────────────────────────────────────────────────────── # Se llama casi igual que qqc2-desktop-style y viene del OTRO tarball: éste sale del release de # Plasma (6.7.2, el mismo de breeze/kwin/plasma-workspace) y aquél de Frameworks (6.27.0). Copiar la # URL del vecino da un 404. name = "qqc2-breeze-style" version = "6.7.2" license = "LGPL-2.1-only OR LGPL-3.0-only" [source] tarball = "https://download.kde.org/stable/plasma/6.7.2/qqc2-breeze-style-6.7.2.tar.xz" # Contrastado contra el .sha256 que publica KDE al lado del tarball, no sólo contra lo que bajó acá. sha256 = "94e1dad9b110c43d48d8bea7c12e7fa2754e56d1a05a7bb249a03035e77f5b49" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" flags = [] [build.phases] # Wrapper .zwrap: patrón KF6/Plasma del corpus. KDECompilerSettings mete `-Wl,--fatal-warnings`, que # zig ld no entiende y convierte cualquier aviso del linker en un fallo duro; el wrapper lo filtra. configure = ''' ZW="$PWD/.zwrap"; mkdir -p "$ZW" cat > "$ZW/cc" <<'W' #!/bin/sh a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done exec /opt/zig/zig cc -mcpu=baseline $a W cat > "$ZW/cxx" <<'W' #!/bin/sh a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done exec /opt/zig/zig c++ -mcpu=baseline $a W chmod +x "$ZW/cc" "$ZW/cxx" cmake -B build -G Ninja -Wno-dev \ -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ -DBUILD_TESTING=OFF ''' compile = "cmake --build build" install = ''' set -e DESTDIR=/out cmake --install build # Verificación por CONTENIDO. El artefacto son plugins QML: si el módulo se instala sin su qmldir o # sin los .qml, el directorio existe, pesa, y Plasma arranca con el estilo genérico sin decir nada. test -s /out/usr/lib/qt6/qml/org/kde/breeze/qmldir test -s /out/usr/lib/qt6/qml/org/kde/breeze/impl/qmldir test -f /out/usr/lib/qt6/qml/org/kde/breeze/Button.qml test -f /out/usr/lib/qt6/plugins/kf6/kirigami/platform/org.kde.breeze.so echo " qml: $(find /out/usr/lib/qt6/qml/org/kde/breeze -name '*.qml' | wc -l) controles" ''' # La lista NO es la del vecino qqc2-desktop-style copiada: sale de la clausura de `find_dependency` # de los KF6*Config.cmake que ya están en el store. Ese recorrido enseñó algo útil: casi todo lo que # esos configs piden (X11, XCB, Wayland, OpenSSL, BZip2, LibLZMA) está dentro de un `if (NOT TRUE)` # —la rama de build estático— y por lo tanto es CÓDIGO MUERTO en nuestro corpus, que compila KF6 # dinámico. Por eso acá no hay libX11 ni xorgproto: no los pide nadie, y el escritorio es Wayland. # `find_package(X11)` del CMakeLists raíz no es REQUIRED, así que falla en silencio y no rompe el # feature_summary(FATAL_ON_MISSING_REQUIRED_PACKAGES). [deps] build = ["cmake", "samurai", "python3", "pkgconf", "extra-cmake-modules", "gettext-tiny", "qttools", "qtbase", "qtdeclarative", "qtsvg", "qtshadertools", "dbus", "kirigami", "kconfig", "kcoreaddons", "kguiaddons", "kcolorscheme", "kiconthemes", "karchive", "ki18n", "kwidgetsaddons", "mesa", "libdrm", "libxkbcommon", "wayland"]