fix: restore Qt producer surfaces for vectorimage chain
This commit is contained in:
@@ -15,14 +15,9 @@ script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
# Sysroot path fix: the cookbook only symlinks sysroot/{bin,include,lib,share} -> usr/
|
||||
# but Qt6 cmake targets reference ${_IMPORT_PREFIX}/{plugins,mkspecs,metatypes,modules}.
|
||||
for qtdir in plugins mkspecs metatypes modules; do
|
||||
if [ -d "${COOKBOOK_SYSROOT}/usr/${qtdir}" ] && [ ! -e "${COOKBOOK_SYSROOT}/${qtdir}" ]; then
|
||||
ln -s "usr/${qtdir}" "${COOKBOOK_SYSROOT}/${qtdir}"
|
||||
fi
|
||||
done
|
||||
redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules
|
||||
|
||||
if [ ! -d "${COOKBOOK_SYSROOT}/lib/cmake/Qt6Quick" ] \
|
||||
&& [ ! -d "${COOKBOOK_SYSROOT}/usr/lib/cmake/Qt6Quick" ]; then
|
||||
@@ -45,6 +40,18 @@ fi
|
||||
rm -f CMakeCache.txt
|
||||
rm -rf CMakeFiles
|
||||
|
||||
python - <<'PY'
|
||||
import os
|
||||
from pathlib import Path
|
||||
path = Path(os.environ["COOKBOOK_SOURCE"]) / "src/3rdparty/assimp/src/contrib/unzip/ioapi.c"
|
||||
text = path.read_text()
|
||||
old = 'defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64)'
|
||||
new = 'defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__HAIKU__) || defined(MINIZIP_FOPEN_NO_64) || defined(__redox__)'
|
||||
if old in text and new not in text:
|
||||
text = text.replace(old, new, 1)
|
||||
path.write_text(text)
|
||||
PY
|
||||
|
||||
cmake "${COOKBOOK_SOURCE}" \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${COOKBOOK_ROOT}/local/recipes/qt/redox-toolchain.cmake" \
|
||||
-DQT_HOST_PATH="${HOST_BUILD}" \
|
||||
@@ -104,38 +111,18 @@ if [ -d "${COOKBOOK_STAGE}/usr/qml" ]; then
|
||||
fi
|
||||
|
||||
BUILD_DIR="${COOKBOOK_BUILD}"
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${BUILD_DIR}|/usr|g" {} + 2>/dev/null || true
|
||||
fi
|
||||
|
||||
STAGE_USR="${COOKBOOK_STAGE}/usr"
|
||||
STAGE_CMAKE_DIR="${STAGE_USR}/lib/cmake"
|
||||
SYSROOT="${COOKBOOK_SYSROOT}"
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/include|${SYSROOT}/include|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${COOKBOOK_SOURCE}/src/.*/meta_types/|${SYSROOT}/metatypes/|g" {} + 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/include" ]; then
|
||||
mkdir -p "${SYSROOT}/include"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/include/"* "${SYSROOT}/include/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
mkdir -p "${SYSROOT}/lib/cmake"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6"* "${SYSROOT}/lib/cmake/" 2>/dev/null || true
|
||||
fi
|
||||
mkdir -p "${SYSROOT}/lib"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/libQt6"* "${SYSROOT}/lib/" 2>/dev/null || true
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/metatypes" ]; then
|
||||
mkdir -p "${SYSROOT}/metatypes"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/metatypes/"* "${SYSROOT}/metatypes/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/plugins" ]; then
|
||||
mkdir -p "${SYSROOT}/plugins"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/plugins/"* "${SYSROOT}/plugins/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/qml" ]; then
|
||||
mkdir -p "${SYSROOT}/qml"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/qml/"* "${SYSROOT}/qml/" 2>/dev/null || true
|
||||
if [ -d "${STAGE_CMAKE_DIR}" ]; then
|
||||
redbear_qt_rewrite_stage_build_paths "${STAGE_USR}" "${BUILD_DIR}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_source_metatype_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}" "${COOKBOOK_SOURCE}"
|
||||
redbear_qt_copy_stage_qt6_cmake_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
fi
|
||||
redbear_qt_copy_common_stage_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metatypes
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" plugins
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" qml
|
||||
"""
|
||||
|
||||
@@ -9,12 +9,48 @@ template = "custom"
|
||||
dependencies = [
|
||||
"qtbase",
|
||||
"qtshadertools",
|
||||
"qtsvg",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
|
||||
DECL_HOST="${COOKBOOK_ROOT}/build/qt-declarative-host"
|
||||
HOST_QTSVG_BUILD="${COOKBOOK_ROOT}/build/qtsvg-host-build"
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
# ============================================================
|
||||
# Step 0: Build host qtsvg into the shared host prefix.
|
||||
# quick-vectorimage in qtdeclarative requires host Qt::Svg support before
|
||||
# svgtoqml / Qt6QuickTools can be generated and exported.
|
||||
# ============================================================
|
||||
if [ ! -d "${HOST_BUILD}/lib/cmake/Qt6Svg" ]; then
|
||||
echo "=== Building qtsvg host module ==="
|
||||
rm -rf "${HOST_QTSVG_BUILD}"
|
||||
env \
|
||||
-u CPPFLAGS \
|
||||
-u LDFLAGS \
|
||||
-u PKG_CONFIG_ALLOW_CROSS \
|
||||
-u PKG_CONFIG_PATH \
|
||||
-u PKG_CONFIG_LIBDIR \
|
||||
-u PKG_CONFIG_SYSROOT_DIR \
|
||||
-u CFLAGS_x86_64_unknown_redox \
|
||||
-u CXXFLAGS_x86_64_unknown_redox \
|
||||
-u LDFLAGS_x86_64_unknown_redox \
|
||||
cmake -S "${COOKBOOK_ROOT}/recipes/wip/qt/qtsvg/source" -B "${HOST_QTSVG_BUILD}" \
|
||||
-DCMAKE_C_COMPILER=/usr/bin/cc \
|
||||
-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX="${HOST_BUILD}" \
|
||||
-DCMAKE_PREFIX_PATH="${HOST_BUILD}" \
|
||||
-DQT_BUILD_EXAMPLES=OFF \
|
||||
-DQT_BUILD_TESTS=OFF \
|
||||
-DQT_GENERATE_SBOM=OFF \
|
||||
-Wno-dev
|
||||
cmake --build "${HOST_QTSVG_BUILD}" -j"${COOKBOOK_MAKE_JOBS}"
|
||||
cmake --install "${HOST_QTSVG_BUILD}" --prefix "${HOST_BUILD}"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Step 1: Build only the qtdeclarative host tools actually needed for cross-builds.
|
||||
@@ -23,7 +59,7 @@ DECL_HOST="${COOKBOOK_ROOT}/build/qt-declarative-host"
|
||||
# Install/copy the minimal host tools into the same prefix as qtbase host tools so
|
||||
# QT_HOST_PATH finds both qtbase and qtdeclarative tools.
|
||||
# ============================================================
|
||||
if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaotstats" ] || [ ! -d "${HOST_BUILD}/lib/cmake/Qt6QmlTools" ]; then
|
||||
if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaotstats" ] || [ ! -d "${HOST_BUILD}/lib/cmake/Qt6QmlTools" ] || [ ! -d "${HOST_BUILD}/lib/cmake/Qt6QuickTools" ] || { [ ! -f "${HOST_BUILD}/bin/svgtoqml" ] && [ ! -f "${HOST_BUILD}/libexec/svgtoqml" ]; }; then
|
||||
echo "=== Building qtdeclarative host tools ==="
|
||||
mkdir -p "${DECL_HOST}"
|
||||
env \
|
||||
@@ -47,7 +83,7 @@ if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaots
|
||||
-DQT_BUILD_TESTS=OFF \
|
||||
-DQT_GENERATE_SBOM=OFF \
|
||||
-Wno-dev
|
||||
cmake --build "${DECL_HOST}" --target qmllint qmlimportscanner qmltyperegistrar qmlaotstats -j"${COOKBOOK_MAKE_JOBS}" || true
|
||||
cmake --build "${DECL_HOST}" --target qmllint qmlimportscanner qmltyperegistrar qmlaotstats svgtoqml -j"${COOKBOOK_MAKE_JOBS}" || true
|
||||
# Generate jsroot.qmltypes needed by qmlcachegen using the host-built qmltyperegistrar.
|
||||
# Qt6 CMake rule: qmltyperegistrar --jsroot --generate-qmltypes <output>
|
||||
QMLREG="${DECL_HOST}/libexec/qmltyperegistrar"
|
||||
@@ -72,7 +108,7 @@ if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaots
|
||||
fi
|
||||
|
||||
mkdir -p "${HOST_BUILD}/bin" "${HOST_BUILD}/libexec" "${HOST_BUILD}/lib/cmake"
|
||||
for tool in qmlcachegen qmllint qmlimportscanner qmltyperegistrar qmlaotstats; do
|
||||
for tool in qmlcachegen qmllint qmlimportscanner qmltyperegistrar qmlaotstats svgtoqml; do
|
||||
if [ -f "${DECL_HOST}/bin/${tool}" ]; then
|
||||
cp -a "${DECL_HOST}/bin/${tool}" "${HOST_BUILD}/bin/"
|
||||
elif [ -f "${DECL_HOST}/libexec/${tool}" ]; then
|
||||
@@ -82,6 +118,7 @@ if [ ! -f "${HOST_BUILD}/bin/qmlcachegen" ] || [ ! -f "${HOST_BUILD}/bin/qmlaots
|
||||
done
|
||||
cp -a "${DECL_HOST}/lib/cmake/Qt6QmlTools" "${HOST_BUILD}/lib/cmake/" 2>/dev/null || true
|
||||
cp -a "${DECL_HOST}/lib/cmake/Qt6QmlCompiler" "${HOST_BUILD}/lib/cmake/" 2>/dev/null || true
|
||||
cp -a "${DECL_HOST}/lib/cmake/Qt6QuickTools" "${HOST_BUILD}/lib/cmake/" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
@@ -90,14 +127,7 @@ fi
|
||||
rm -f CMakeCache.txt
|
||||
rm -rf CMakeFiles
|
||||
|
||||
# Sysroot path fix: the cookbook only symlinks sysroot/{bin,include,lib,share} → usr/
|
||||
# but Qt6 cmake targets reference ${_IMPORT_PREFIX}/{plugins,mkspecs,metatypes,modules}
|
||||
# which resolve to sysroot/{plugins,mkspecs,metatypes,modules} — missing the usr/ layer.
|
||||
for qtdir in plugins mkspecs metatypes modules; do
|
||||
if [ -d "${COOKBOOK_SYSROOT}/usr/${qtdir}" ] && [ ! -e "${COOKBOOK_SYSROOT}/${qtdir}" ]; then
|
||||
ln -s "usr/${qtdir}" "${COOKBOOK_SYSROOT}/${qtdir}"
|
||||
fi
|
||||
done
|
||||
redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules
|
||||
|
||||
# Patch masm/CheckedArithmetic.h: add missing ArithmeticOperations<unsigned, long>
|
||||
# specialization for LP64 (sizeof(long) != sizeof(int)). The existing code only
|
||||
@@ -184,7 +214,7 @@ cmake "${COOKBOOK_SOURCE}" \
|
||||
|
||||
HOST_QT6_LIBS="${DECL_HOST}/lib:${HOST_BUILD}/lib"
|
||||
export LD_LIBRARY_PATH="${HOST_QT6_LIBS}:${LD_LIBRARY_PATH:-}"
|
||||
cmake --build . --target Qt6Qml Qt6Quick Qt6QuickWidgets Qt6QmlModels Qt6QmlWorkerScript Qt6QmlIntegration Qt6LabsSettings Qt6QuickTest Qt6QuickControls2 Qt6QuickTemplates2 -j${COOKBOOK_MAKE_JOBS} || true
|
||||
cmake --build . --target Qml Quick QuickWidgets QmlModels QmlWorkerScript QmlIntegration LabsSettings QuickControls2 QuickTemplates2 QuickVectorImageGeneratorPrivate QuickVectorImage QuickVectorImageHelpers -j${COOKBOOK_MAKE_JOBS}
|
||||
cmake --build . -j${COOKBOOK_MAKE_JOBS} 2>/dev/null || echo "Some targets failed (tools/qml expected)"
|
||||
|
||||
# ============================================================
|
||||
@@ -228,37 +258,20 @@ for lib in "${COOKBOOK_STAGE}/usr/lib/libQt6"*.so.*; do
|
||||
done
|
||||
find "${COOKBOOK_STAGE}/usr/plugins" -name '*.so' -exec patchelf --remove-rpath {} + 2>/dev/null || true
|
||||
|
||||
# CMake export fixup: replace build-tree paths with /usr
|
||||
# CMake export fixup and sysroot propagation
|
||||
BUILD_DIR="${COOKBOOK_BUILD}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${BUILD_DIR}|/usr|g" {} + 2>/dev/null || true
|
||||
|
||||
STAGE_USR="${COOKBOOK_STAGE}/usr"
|
||||
STAGE_CMAKE_DIR="${STAGE_USR}/lib/cmake"
|
||||
SYSROOT="${COOKBOOK_SYSROOT}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/include|${SYSROOT}/include|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/lib|${SYSROOT}/lib|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/src|${COOKBOOK_SOURCE}/src|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${COOKBOOK_SOURCE}/src/.*/meta_types/|${SYSROOT}/metatypes/|g" {} + 2>/dev/null || true
|
||||
|
||||
mkdir -p "${SYSROOT}/include" "${SYSROOT}/lib/cmake" "${SYSROOT}/lib"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/include/"* "${SYSROOT}/include/" 2>/dev/null || true
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6"* "${SYSROOT}/lib/cmake/" 2>/dev/null || true
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/libQt6"* "${SYSROOT}/lib/" 2>/dev/null || true
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/metatypes" ]; then
|
||||
mkdir -p "${SYSROOT}/metatypes"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/metatypes/"* "${SYSROOT}/metatypes/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/plugins" ]; then
|
||||
mkdir -p "${SYSROOT}/plugins"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/plugins/"* "${SYSROOT}/plugins/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/qml" ]; then
|
||||
mkdir -p "${SYSROOT}/qml"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/qml/"* "${SYSROOT}/qml/" 2>/dev/null || true
|
||||
fi
|
||||
redbear_qt_rewrite_stage_build_paths "${STAGE_USR}" "${BUILD_DIR}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_source_metatype_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}" "${COOKBOOK_SOURCE}"
|
||||
redbear_qt_copy_common_stage_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_stage_qt6_cmake_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metatypes
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" plugins
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" qml
|
||||
|
||||
for stdlib in \
|
||||
"${COOKBOOK_STAGE}/usr/include/stdlib.h" \
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
[source]
|
||||
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtlottie-everywhere-src-6.11.0.tar.xz"
|
||||
blake3 = "03ec625fe5fbbc072c9d0ffcba49b31c8213945c8797f1c7b46923c9c045f2b1"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
@@ -13,6 +14,7 @@ script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
# Sysroot path fix: the cookbook only symlinks sysroot/{bin,include,lib,share} -> usr/
|
||||
# but Qt6 cmake targets reference ${_IMPORT_PREFIX}/{plugins,mkspecs,metatypes,modules}.
|
||||
@@ -31,6 +33,16 @@ if [ ! -d "${COOKBOOK_SYSROOT}/lib/cmake/Qt6Quick" ] \
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Redox Qt stack currently lacks Qt6QuickVectorImageGeneratorPrivate.
|
||||
# Disable the optional lottietoqml tool and vector image plugin slices that require it,
|
||||
# while keeping the core runtime library and QML import buildable.
|
||||
sed -i 's|^include("${CMAKE_CURRENT_LIST_DIR}/tools/lottietoqml/Qt6LottieToQmlMacros.cmake")|# disabled for Redox: requires Qt6QuickVectorImageGeneratorPrivate|' \
|
||||
"${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true
|
||||
sed -i 's|^add_subdirectory(lottietoqml)|# disabled for Redox: requires Qt6QuickVectorImageGeneratorPrivate|' \
|
||||
"${COOKBOOK_SOURCE}/tools/CMakeLists.txt" 2>/dev/null || true
|
||||
sed -i 's|^add_subdirectory(vectorimageformats)|# disabled for Redox: requires Qt6QuickVectorImageGeneratorPrivate|' \
|
||||
"${COOKBOOK_SOURCE}/src/plugins/CMakeLists.txt" 2>/dev/null || true
|
||||
|
||||
rm -f CMakeCache.txt
|
||||
rm -rf CMakeFiles
|
||||
|
||||
@@ -92,42 +104,19 @@ if [ -d "${COOKBOOK_STAGE}/usr/qml" ]; then
|
||||
fi
|
||||
|
||||
BUILD_DIR="${COOKBOOK_BUILD}"
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${BUILD_DIR}|/usr|g" {} + 2>/dev/null || true
|
||||
fi
|
||||
|
||||
STAGE_USR="${COOKBOOK_STAGE}/usr"
|
||||
STAGE_CMAKE_DIR="${STAGE_USR}/lib/cmake"
|
||||
SYSROOT="${COOKBOOK_SYSROOT}"
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/include|${SYSROOT}/include|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/lib|${SYSROOT}/lib|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/src/.*/meta_types/|${SYSROOT}/metatypes/|g" {} + 2>/dev/null || true
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${COOKBOOK_SOURCE}/src/.*/meta_types/|${SYSROOT}/metatypes/|g" {} + 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/include" ]; then
|
||||
mkdir -p "${SYSROOT}/include"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/include/"* "${SYSROOT}/include/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/lib/cmake" ]; then
|
||||
mkdir -p "${SYSROOT}/lib/cmake"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6"* "${SYSROOT}/lib/cmake/" 2>/dev/null || true
|
||||
fi
|
||||
mkdir -p "${SYSROOT}/lib"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/libQt6"* "${SYSROOT}/lib/" 2>/dev/null || true
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/plugins" ]; then
|
||||
mkdir -p "${SYSROOT}/plugins"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/plugins/"* "${SYSROOT}/plugins/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/qml" ]; then
|
||||
mkdir -p "${SYSROOT}/qml"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/qml/"* "${SYSROOT}/qml/" 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "${COOKBOOK_STAGE}/usr/metatypes" ]; then
|
||||
mkdir -p "${SYSROOT}/metatypes"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/metatypes/"* "${SYSROOT}/metatypes/" 2>/dev/null || true
|
||||
if [ -d "${STAGE_CMAKE_DIR}" ]; then
|
||||
redbear_qt_rewrite_stage_build_paths "${STAGE_USR}" "${BUILD_DIR}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_usr_src_metatype_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_source_metatype_paths "${STAGE_CMAKE_DIR}" "${SYSROOT}" "${COOKBOOK_SOURCE}"
|
||||
redbear_qt_copy_stage_qt6_cmake_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
fi
|
||||
redbear_qt_copy_common_stage_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" plugins
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" qml
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metatypes
|
||||
"""
|
||||
|
||||
@@ -10,6 +10,8 @@ dependencies = [
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
|
||||
SHADER_HOST="${COOKBOOK_ROOT}/build/qt-shadertools-host"
|
||||
SHADER_HOST_SRC="${COOKBOOK_ROOT}/build/qt-shadertools-host-src"
|
||||
@@ -232,21 +234,21 @@ for lib in "${COOKBOOK_STAGE}/usr/lib/libQt6"*.so.*; do
|
||||
done
|
||||
find "${COOKBOOK_STAGE}/usr/plugins" -name '*.so' -exec patchelf --remove-rpath {} + 2>/dev/null || true
|
||||
|
||||
# CMake export fixup: replace build-tree paths with /usr
|
||||
# CMake export fixup and sysroot propagation for downstream Qt modules
|
||||
BUILD_DIR="${COOKBOOK_BUILD}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${BUILD_DIR}|/usr|g" {} + 2>/dev/null || true
|
||||
|
||||
# Sysroot propagation for downstream Qt modules
|
||||
STAGE_USR="${COOKBOOK_STAGE}/usr"
|
||||
SYSROOT="${COOKBOOK_SYSROOT}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6ShaderTools" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/include|${SYSROOT}/include|g" {} + 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/include"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/include/"* "${SYSROOT}/include/" 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/lib/cmake/Qt6ShaderTools"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6ShaderTools/"* "${SYSROOT}/lib/cmake/Qt6ShaderTools/" 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/lib"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/libQt6"* "${SYSROOT}/lib/" 2>/dev/null || true
|
||||
redbear_qt_rewrite_stage_build_paths "${STAGE_USR}" "${BUILD_DIR}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_USR}/lib/cmake/Qt6ShaderTools" "${SYSROOT}"
|
||||
redbear_qt_rewrite_usr_src_metatype_paths "${STAGE_USR}/lib/cmake/Qt6ShaderTools" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_USR}/lib/cmake/Qt6ShaderTools" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_USR}/lib/cmake/Qt6ShaderToolsPrivate" "${SYSROOT}"
|
||||
redbear_qt_rewrite_usr_src_metatype_paths "${STAGE_USR}/lib/cmake/Qt6ShaderToolsPrivate" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_USR}/lib/cmake/Qt6ShaderToolsPrivate" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_path_literal "${STAGE_USR}/lib/cmake/Qt6ShaderToolsPrivate" "/usr/src/shadertools" "${SYSROOT}/include/QtShaderTools"
|
||||
redbear_qt_copy_common_stage_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_stage_cmake_subdir_to_sysroot "${STAGE_USR}" "${SYSROOT}" "Qt6ShaderTools"
|
||||
redbear_qt_copy_stage_cmake_subdir_to_sysroot "${STAGE_USR}" "${SYSROOT}" "Qt6ShaderToolsPrivate"
|
||||
|
||||
# Ensure qsb is staged for downstream consumers.
|
||||
if [ -f "${HOST_BUILD}/bin/qsb" ]; then
|
||||
@@ -258,3 +260,4 @@ fi
|
||||
|
||||
[source]
|
||||
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtshadertools-everywhere-src-6.11.0.tar.xz"
|
||||
blake3 = "7d11bdaaeb7f823e0d168d0864413e76274e110ccdab499ae20479d1942198b9"
|
||||
|
||||
@@ -9,18 +9,11 @@ script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build"
|
||||
source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh"
|
||||
|
||||
# Sysroot path fix: same as qtdeclarative — cookbook only symlinks
|
||||
# sysroot/{bin,include,lib,share} but Qt6 cmake targets reference
|
||||
# ${_IMPORT_PREFIX}/{plugins,mkspecs,metatypes,modules}.
|
||||
for qtdir in plugins mkspecs metatypes modules; do
|
||||
if [ -d "${COOKBOOK_SYSROOT}/usr/${qtdir}" ] && [ ! -e "${COOKBOOK_SYSROOT}/${qtdir}" ]; then
|
||||
ln -s "usr/${qtdir}" "${COOKBOOK_SYSROOT}/${qtdir}"
|
||||
fi
|
||||
done
|
||||
redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules
|
||||
|
||||
rm -f CMakeCache.txt
|
||||
rm -rf CMakeFiles
|
||||
redbear_qt_reset_cmake_cache_dir
|
||||
|
||||
cmake "${COOKBOOK_SOURCE}" \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${COOKBOOK_ROOT}/local/recipes/qt/redox-toolchain.cmake" \
|
||||
@@ -60,6 +53,8 @@ if [ -d "plugins" ]; then
|
||||
mkdir -p "${COOKBOOK_STAGE}/usr/plugins"
|
||||
cp -a plugins/* "${COOKBOOK_STAGE}/usr/plugins/" 2>/dev/null || true
|
||||
fi
|
||||
mkdir -p "${COOKBOOK_STAGE}/usr/metatypes"
|
||||
find . -path '*/meta_types/*.json' -type f -exec cp -an {} "${COOKBOOK_STAGE}/usr/metatypes/" \\; 2>/dev/null || true
|
||||
|
||||
for lib in "${COOKBOOK_STAGE}/usr/lib/libQt6"*.so.*; do
|
||||
[ -f "${lib}" ] || continue
|
||||
@@ -68,19 +63,24 @@ done
|
||||
find "${COOKBOOK_STAGE}/usr/plugins" -name '*.so' -exec patchelf --remove-rpath {} + 2>/dev/null || true
|
||||
|
||||
BUILD_DIR="${COOKBOOK_BUILD}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake" -name '*.cmake' -exec sed -i \
|
||||
"s|${BUILD_DIR}|/usr|g" {} + 2>/dev/null || true
|
||||
|
||||
STAGE_USR="${COOKBOOK_STAGE}/usr"
|
||||
SYSROOT="${COOKBOOK_SYSROOT}"
|
||||
find "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6Svg" -name '*.cmake' -exec sed -i \
|
||||
"s|/usr/include|${SYSROOT}/include|g" {} + 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/include"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/include/"* "${SYSROOT}/include/" 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/lib/cmake/Qt6Svg"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/cmake/Qt6Svg/"* "${SYSROOT}/lib/cmake/Qt6Svg/" 2>/dev/null || true
|
||||
mkdir -p "${SYSROOT}/lib"
|
||||
cp -a "${COOKBOOK_STAGE}/usr/lib/libQt6"* "${SYSROOT}/lib/" 2>/dev/null || true
|
||||
redbear_qt_rewrite_stage_build_paths "${STAGE_USR}" "${BUILD_DIR}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_USR}/lib/cmake/Qt6Svg" "${SYSROOT}"
|
||||
redbear_qt_rewrite_usr_src_metatype_paths "${STAGE_USR}/lib/cmake/Qt6Svg" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_USR}/lib/cmake/Qt6Svg" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_include_paths "${STAGE_USR}/lib/cmake/Qt6SvgPrivate" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_USR}/lib/cmake/Qt6SvgPrivate" "${SYSROOT}"
|
||||
redbear_qt_rewrite_usr_src_metatype_paths "${STAGE_USR}/lib/cmake/Qt6SvgWidgets" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_lib_paths "${STAGE_USR}/lib/cmake/Qt6SvgWidgets" "${SYSROOT}"
|
||||
redbear_qt_rewrite_stage_path_literal "${STAGE_USR}/lib/cmake/Qt6SvgPrivate" "/usr/src/svg" "${SYSROOT}/include/QtSvg"
|
||||
redbear_qt_copy_common_stage_to_sysroot "${STAGE_USR}" "${SYSROOT}"
|
||||
redbear_qt_copy_stage_cmake_subdir_to_sysroot "${STAGE_USR}" "${SYSROOT}" "Qt6Svg"
|
||||
redbear_qt_copy_stage_cmake_subdir_to_sysroot "${STAGE_USR}" "${SYSROOT}" "Qt6SvgPrivate"
|
||||
redbear_qt_copy_stage_cmake_subdir_to_sysroot "${STAGE_USR}" "${SYSROOT}" "Qt6SvgWidgets"
|
||||
redbear_qt_copy_optional_stage_dir_to_sysroot "${STAGE_USR}" "${SYSROOT}" metatypes
|
||||
"""
|
||||
|
||||
[source]
|
||||
tar = "https://download.qt.io/official_releases/qt/6.11/6.11.0/submodules/qtsvg-everywhere-src-6.11.0.tar.xz"
|
||||
blake3 = "b7825c7971c67c04993ac2d3bdb72e403e8848e1696cdd33fb3b5034730e491c"
|
||||
|
||||
Reference in New Issue
Block a user