diff --git a/classes/populate_sdk_qt6_base.bbclass b/classes/populate_sdk_qt6_base.bbclass index 1240b7c..dafa246 100644 --- a/classes/populate_sdk_qt6_base.bbclass +++ b/classes/populate_sdk_qt6_base.bbclass @@ -75,6 +75,8 @@ create_qt6_sdk_files () { cmake_minimum_required(VERSION 3.11) include_guard(GLOBAL) +get_filename_component(SYSROOTS \${CMAKE_CURRENT_LIST_DIR}/../../../.. ABSOLUTE) + set(ENV{PKG_CONFIG_SYSROOT_DIR} "${SDKTARGETSYSROOT}") set(ENV{PKG_CONFIG_PATH} "${SDKTARGETSYSROOT}${libdir}/pkgconfig") @@ -123,10 +125,9 @@ if(NOT DEFINED CMAKE_INSTALL_PREFIX) endif() set(CMAKE_INSTALL_PREFIX "${prefix}" CACHE PATH "Install path prefix") EOF -} -create_qt6_sdk_files:append:sdkmingw32() { - sed -i -e 's|${SDKPATH}|$ENV{SDKPATH}|g' \ + # resolve absolute paths at runtime + sed -i -e 's|${SDKPATH}/sysroots|\${SYSROOTS}|g' \ ${SDK_OUTPUT}${SDKPATHNATIVE}/usr/share/cmake/Qt6Toolchain.cmake } diff --git a/recipes-qt/qt6/qtbase_git.bb b/recipes-qt/qt6/qtbase_git.bb index 01a62fc..96a35cc 100644 --- a/recipes-qt/qt6/qtbase_git.bb +++ b/recipes-qt/qt6/qtbase_git.bb @@ -156,11 +156,13 @@ set(QT_HOST_PATH "\$ENV{OECORE_NATIVE_SYSROOT}/usr" CACHE PATH "") set(QT_BUILD_TOOLS_WHEN_CROSSCOMPILING "TRUE" CACHE BOOL "") EOF - sed -i ${D}${QT6_INSTALL_BINDIR}/* ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6/qt.toolchain.cmake \ - -e 's|${RECIPE_SYSROOT_NATIVE}|${SDKPATHNATIVE}|' + RELPATH="${@os.path.relpath(d.getVar('bindir'), d.getVar('QT6_INSTALL_BINDIR'))}" + sed -i ${D}${QT6_INSTALL_BINDIR}/* \ + -e "s|${RECIPE_SYSROOT_NATIVE}.*cmake|\$script_dir_path/$RELPATH/cmake|" RELPATH=${@os.path.relpath(d.getVar('prefix') + '/share/cmake/Qt6Toolchain.cmake', d.getVar('QT6_INSTALL_LIBDIR') + '/cmake/Qt6')} sed -i ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6/qt.toolchain.cmake \ + -e 's|${RECIPE_SYSROOT_NATIVE}|\${CMAKE_CURRENT_LIST_DIR}/../../../..|' \ -e "s|/.*/toolchain.cmake|\${CMAKE_CURRENT_LIST_DIR}/$RELPATH|" }