diff options
author | Samuli Piippo <samuli.piippo@qt.io> | 2022-12-28 10:57:03 +0000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-01-11 19:38:43 +0000 |
commit | 6d70fc56a540bb0e5be80f7434769b4de296b6ae (patch) | |
tree | 15df003f26430be72f2e09421accf4c39e5820b1 | |
parent | bc621d2964da5ddfcad5e7bb9fe149323131e1e0 (diff) |
sdk: move sdk mkspec additions to qtbase recipe
The qmake mkspec additions are used with the sdk when the toolchain
environment-setup script hasn't been run. Instead of adding those in
the sdk creation phase, do it already in the qtbase recipe.
Change the mkspec also so that CC/CXX has only the compiler executable,
but none of the compile flags that usually are there in Yocto builds.
This keeps Qt Creator happier as well.
Task-number: QTCREATORBUG-27372
Change-Id: If27d595965df59ff9846f4c773469889a8480040
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
Reviewed-by: Ari Parkkila <ari.parkkila@qt.io>
(cherry picked from commit cfaf86d8086508fb0bb8909cd19e0b8dfad0489e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | classes/populate_sdk_qt6_base.bbclass | 15 | ||||
-rw-r--r-- | recipes-qt/qt6/qtbase_git.bb | 22 |
2 files changed, 22 insertions, 15 deletions
diff --git a/classes/populate_sdk_qt6_base.bbclass b/classes/populate_sdk_qt6_base.bbclass index af1e501..63643f1 100644 --- a/classes/populate_sdk_qt6_base.bbclass +++ b/classes/populate_sdk_qt6_base.bbclass @@ -57,21 +57,6 @@ create_qt6_sdk_files () { echo 'export OE_QMAKE_OBJCOPY="$OBJCOPY"' >> $script echo 'export OE_QMAKE_AR_LTCG="${HOST_PREFIX}gcc-ar"' >> $script - mkspec=${SDK_OUTPUT}${SDKTARGETSYSROOT}${QT6_INSTALL_MKSPECSDIR}/linux-oe-g++/qmake.conf - echo "count(QMAKE_AR, 1): QMAKE_AR = ${AR} cqs" >> $mkspec - echo "count(QMAKE_AR_LTCG, 1): QMAKE_AR_LTCG = ${HOST_PREFIX}gcc-ar cqs" >> $mkspec - echo "isEmpty(QMAKE_STRIP): QMAKE_STRIP = ${STRIP}" >> $mkspec - echo "isEmpty(QMAKE_OBJCOPY): QMAKE_OBJCOPY = ${OBJCOPY}" >> $mkspec - echo "isEmpty(QMAKE_CC): QMAKE_CC = ${CC}" >> $mkspec - echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${CFLAGS}" >> $mkspec - echo "isEmpty(QMAKE_CXX): QMAKE_CXX = ${CXX}" >> $mkspec - echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${CXXFLAGS}" >> $mkspec - echo "isEmpty(QMAKE_LINK): QMAKE_LINK = ${CXX}" >> $mkspec - echo "isEmpty(QMAKE_LFLAGS): QMAKE_LFLAGS = ${LDFLAGS}" >> $mkspec - sed -i $mkspec \ - -e 's:${RECIPE_SYSROOT}:$$[QT_SYSROOT]:' \ - -e 's:${TARGET_PREFIX}:$$[QT_HOST_PREFIX]${bindir}/${TARGET_SYS}/${TARGET_PREFIX}:' - # Generate a toolchain file for using Qt without running setup-environment script cat > ${SDK_OUTPUT}${SDKPATHNATIVE}/usr/share/cmake/Qt6Toolchain.cmake <<EOF cmake_minimum_required(VERSION 3.11) diff --git a/recipes-qt/qt6/qtbase_git.bb b/recipes-qt/qt6/qtbase_git.bb index 52598eb..6b60cf9 100644 --- a/recipes-qt/qt6/qtbase_git.bb +++ b/recipes-qt/qt6/qtbase_git.bb @@ -185,6 +185,28 @@ EOF -e "s|/.*/toolchain.cmake|\${CMAKE_CURRENT_LIST_DIR}/$RELPATH|" } +do_install:append:class-target() { + sed >> ${D}${QT6_INSTALL_MKSPECSDIR}/linux-oe-g++/qmake.conf <<EOF \ + -e 's:${lcl_maybe_fortify}::' \ + -e 's:${DEBUG_PREFIX_MAP}::' \ + -e 's:${RECIPE_SYSROOT}:$$[QT_SYSROOT]:' \ + -e 's:${TARGET_PREFIX}:$$[QT_HOST_PREFIX]${bindir}/${TARGET_SYS}/${TARGET_PREFIX}:' + +isEmpty(QMAKE_CC): { + QMAKE_AR = ${AR} cqs + QMAKE_AR_LTCG = ${HOST_PREFIX}gcc-ar cqs + QMAKE_STRIP = ${STRIP} + QMAKE_OBJCOPY = ${OBJCOPY} + QMAKE_CC = ${HOST_PREFIX}gcc + QMAKE_CFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} + QMAKE_CXX = ${HOST_PREFIX}g++ + QMAKE_CXXFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} + QMAKE_LINK = ${HOST_PREFIX}g++ + QMAKE_LFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_LDFLAGS} + } +EOF +} + INSANE_SKIP:${PN}-ptest += "arch" INHIBIT_PACKAGE_STRIP_FILES = "\ ${PKGD}${PTEST_PATH}/tests/auto/corelib/plugin/qpluginloader/elftest/corrupt2.elf64.so \ |