diff --git a/local/recipes/qt/qtshadertools/recipe.toml b/local/recipes/qt/qtshadertools/recipe.toml index 8d9b8ef729..5cfa93e88b 100644 --- a/local/recipes/qt/qtshadertools/recipe.toml +++ b/local/recipes/qt/qtshadertools/recipe.toml @@ -16,6 +16,10 @@ script = """ DYNAMIC_INIT HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" +HOST_QST_BUILD="${COOKBOOK_ROOT}/build/qtshadertools-host-build" +HOST_QST_STAMP="${HOST_BUILD}/.redbear-host-qsb-6.11.1" +HOST_PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" + source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules @@ -26,6 +30,51 @@ if [ -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" ]; then cp -f "${COOKBOOK_SYSROOT}/lib/libredbear-qt-strtold-compat.so" "${COOKBOOK_SYSROOT}/usr/lib/" 2>/dev/null || true fi +# ============================================================ +# Step 1: Build qtshadertools host tools (qsb) on the host +# Qt6 cross-compile needs the host qsb tool for shader processing. +# ============================================================ +if [ ! -f "${HOST_BUILD}/libexec/qsb" ] || [ ! -f "${HOST_QST_STAMP}" ]; then + echo "=== Building qtshadertools host tools (qsb) ===" + rm -rf "${HOST_QST_BUILD}" + env -i \ + HOME="${HOME}" \ + PATH="${HOST_PATH}" \ + cmake -S "${COOKBOOK_SOURCE}" -B "${HOST_QST_BUILD}" \ + -GNinja \ + -DCMAKE_C_COMPILER=/usr/bin/cc \ + -DCMAKE_CXX_COMPILER=/usr/bin/c++ \ + -DCMAKE_ASM_COMPILER=/usr/bin/cc \ + -DCMAKE_AR=/usr/bin/ar \ + -DCMAKE_RANLIB=/usr/bin/ranlib \ + -DCMAKE_STRIP=/usr/bin/strip \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH="${HOST_BUILD}" \ + -DQT_HOST_PATH="${HOST_BUILD}" \ + -DQT_BUILD_TOOLS_BY_DEFAULT=ON \ + -DBUILD_TESTING=OFF \ + -DBUILD_EXAMPLES=OFF \ + -Wno-dev + ( + cd "${HOST_QST_BUILD}" + env -i \ + HOME="${HOME}" \ + PATH="${HOST_PATH}" \ + cmake --build . -j"${COOKBOOK_MAKE_JOBS}" + ) + ( + cd "${HOST_QST_BUILD}" + env -i \ + HOME="${HOME}" \ + PATH="${HOST_PATH}" \ + cmake --install . --prefix "${HOST_BUILD}" + ) + printf '%s\n' "6.11.1" > "${HOST_QST_STAMP}" +fi + +# ============================================================ +# Step 2: Cross-compile qtshadertools for Redox +# ============================================================ redbear_qt_reset_cmake_cache_dir cmake "${COOKBOOK_SOURCE}" \