#TODO: KPackage — package framework, theme/plugin/installer management. Needs kf6-kservice. [source] tar = "https://invent.kde.org/frameworks/kpackage/-/archive/v6.10.0/kpackage-v6.10.0.tar.gz" [build] template = "custom" dependencies = [ "qtbase", "kf6-extra-cmake-modules", "kf6-kcoreaddons", "kf6-ki18n", "kf6-kconfig", "kf6-kservice", "kf6-karchive", ] script = """ DYNAMIC_INIT HOST_BUILD="${COOKBOOK_ROOT}/build/qt-host-build" source "${COOKBOOK_ROOT}/local/scripts/lib/qt-sysroot.sh" redbear_qt_link_sysroot_dirs "${COOKBOOK_SYSROOT}" plugins mkspecs metatypes modules sed -i "s/^ecm_install_po_files_as_qm/#ecm_install_po_files_as_qm/" \ "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true sed -i 's/^ki18n_install(po)/#ki18n_install(po)/' \ "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true sed -i '/include(ECMQmlModule)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true sed -i '/add_subdirectory(qml)/s/^/#/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true rm -f CMakeCache.txt rm -rf CMakeFiles cmake "${COOKBOOK_SOURCE}" \ -DCMAKE_TOOLCHAIN_FILE="${COOKBOOK_ROOT}/local/recipes/qt/redox-toolchain.cmake" \ -DQT_HOST_PATH="${HOST_BUILD}" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" \ -DBUILD_TESTING=OFF \ -DBUILD_QCH=OFF \ -DBUILD_WITH_QML=OFF \ -Wno-dev cmake --build . -j${COOKBOOK_MAKE_JOBS} cmake --install . --prefix "${COOKBOOK_STAGE}/usr" PACKAGE_CMAKE="${COOKBOOK_STAGE}/usr/lib/cmake/KF6Package/KF6PackageConfig.cmake" if [ -f "${PACKAGE_CMAKE}" ]; then python3 - <<'PY' "${PACKAGE_CMAKE}" from pathlib import Path import sys path = Path(sys.argv[1]) text = path.read_text() old = '''if (CMAKE_CROSSCOMPILING AND KF6_HOST_TOOLING) find_file(KPACKAGE_TARGETSFILE KF6Package/KF6PackageToolsTargets.cmake PATHS ${KF6_HOST_TOOLING} ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) include("${KPACKAGE_TARGETSFILE}") else() include("${CMAKE_CURRENT_LIST_DIR}/KF6PackageToolsTargets.cmake") endif()''' new = '''if (CMAKE_CROSSCOMPILING AND KF6_HOST_TOOLING) find_file(KPACKAGE_TARGETSFILE KF6Package/KF6PackageToolsTargets.cmake PATHS ${KF6_HOST_TOOLING} ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) if(KPACKAGE_TARGETSFILE) include("${KPACKAGE_TARGETSFILE}") elseif(EXISTS "${CMAKE_CURRENT_LIST_DIR}/KF6PackageToolsTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/KF6PackageToolsTargets.cmake") endif() else() include("${CMAKE_CURRENT_LIST_DIR}/KF6PackageToolsTargets.cmake") endif()''' if old in text: path.write_text(text.replace(old, new)) PY fi for lib in "${COOKBOOK_STAGE}/usr/lib/"libKF6*.so.*; do [ -f "${lib}" ] || continue patchelf --remove-rpath "${lib}" 2>/dev/null || true done """