aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2022-12-28 10:57:03 +0000
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-01-11 19:38:43 +0000
commit6d70fc56a540bb0e5be80f7434769b4de296b6ae (patch)
tree15df003f26430be72f2e09421accf4c39e5820b1
parentbc621d2964da5ddfcad5e7bb9fe149323131e1e0 (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.bbclass15
-rw-r--r--recipes-qt/qt6/qtbase_git.bb22
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 \