From a0d9fb33f8475336fbdebdbab803f43c7b9107d4 Mon Sep 17 00:00:00 2001 From: Tuomas Heimonen Date: Tue, 14 Aug 2018 10:29:17 +0300 Subject: configure-qtcreator: Add CMake support for QtCreator Add CMake tool to QtCreator configure script Task-number: QTPM-766 Change-Id: I1105284c532fc872cb622781ef1b3ab8b02a478d Reviewed-by: Samuli Piippo --- meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass | 11 +++++++++++ meta-boot2qt/files/configure-qtcreator.sh | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass b/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass index e98565c..ee1a25f 100644 --- a/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass +++ b/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass @@ -34,6 +34,7 @@ NATIVE_SDK_MKSPEC_DIR = "${SDK_OUTPUT}${SDKPATHNATIVE}${libdir}/${QT_DIR_NAME}/m SDK_MKSPEC = "devices/linux-oe-generic-g++" SDK_DEVICE_PRI = "${SDK_MKSPEC_DIR}/qdevice.pri" SDK_DYNAMIC_FLAGS = "-O. -pipe -g" +MACHINE_CMAKE = "${SDK_OUTPUT}${SDKPATHNATIVE}${datadir}/cmake/OEToolchainConfig.cmake.d/${MACHINE}.cmake" create_sdk_files_append () { # Create the toolchain user's generic device mkspec @@ -79,6 +80,16 @@ EOF # Link /etc/resolv.conf is broken in the toolchain sysroot, remove it rm -f ${SDK_OUTPUT}${SDKTARGETSYSROOT}${sysconfdir}/resolv.conf + + # Create and add cmake toolchain file + echo "set(CMAKE_SYSROOT ${SDKTARGETSYSROOT})" > ${MACHINE_CMAKE} + echo "set(CMAKE_PREFIX_PATH ${SDKTARGETSYSROOT}${OE_QMAKE_PATH_LIBS}/cmake)" >> ${MACHINE_CMAKE} + echo "set(compiler_flags \"${TARGET_CC_ARCH}\")" >> ${MACHINE_CMAKE} + echo "set(CMAKE_C_COMPILER_ARG1 \"\${compiler_flags}\")" >> ${MACHINE_CMAKE} + echo "set(CMAKE_CXX_COMPILER_ARG1 \"\${compiler_flags}\")" >> ${MACHINE_CMAKE} + echo "set(OE_QMAKE_PATH_EXTERNAL_HOST_BINS ${SDKPATHNATIVE}${OE_QMAKE_PATH_HOST_BINS})" >> ${MACHINE_CMAKE} + mkdir -p ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/ + install -m 0644 ${MACHINE_CMAKE} ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/ } create_qtcreator_configure_script () { diff --git a/meta-boot2qt/files/configure-qtcreator.sh b/meta-boot2qt/files/configure-qtcreator.sh index 105e476..3e5db2d 100755 --- a/meta-boot2qt/files/configure-qtcreator.sh +++ b/meta-boot2qt/files/configure-qtcreator.sh @@ -100,6 +100,7 @@ ${SDKTOOL} rmQt --id ${BASEID}.qt || true ${SDKTOOL} rmTC --id ProjectExplorer.ToolChain.Gcc:${BASEID}.gcc || true ${SDKTOOL} rmTC --id ProjectExplorer.ToolChain.Gcc:${BASEID}.g++ || true ${SDKTOOL} rmDebugger --id ${BASEID}.gdb 2>/dev/null || true +${SDKTOOL} rmCMake --id ${BASEID}.cmake 2>/dev/null || true if [ -n "${REMOVEONLY}" ]; then echo "Kit removed: ${NAME}" @@ -133,6 +134,11 @@ ${SDKTOOL} addQt \ --type "Qdb.EmbeddedLinuxQt" \ --qmake "$(type -p qmake)" +${SDKTOOL} addCMake \ + --id "${BASEID}.cmake" \ + --name "CMake ${NAME}" \ + --path "$(type -p cmake)" + ${SDKTOOL} addKit \ --id "${BASEID}.kit" \ --name "${NAME}" \ @@ -143,6 +149,10 @@ ${SDKTOOL} addKit \ --Ctoolchain "ProjectExplorer.ToolChain.Gcc:${BASEID}.gcc" \ --Cxxtoolchain "ProjectExplorer.ToolChain.Gcc:${BASEID}.g++" \ --icon ":/boot2qt/images/B2Qt_QtC_icon.png" \ - --mkspec "${MKSPEC}" + --mkspec "${MKSPEC}" \ + --cmake "${BASEID}.cmake" \ + --cmake-config "CMAKE_TOOLCHAIN_FILE:FILEPATH=${OECORE_NATIVE_SYSROOT}/usr/share/cmake/OEToolchainConfig.cmake" \ + --cmake-config "CMAKE_CXX_COMPILER:FILEPATH=$(type -p ${CXX})" \ + --cmake-config "CMAKE_C_COMPILER:FILEPATH=$(type -p ${CC})" echo "Configured Qt Creator with new kit: ${NAME}" -- cgit v1.2.3-54-g00ecf