aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTuomas Heimonen <tuomas.heimonen@qt.io>2018-08-14 10:29:17 +0300
committerTuomas Heimonen <tuomas.heimonen@qt.io>2018-09-10 06:57:20 +0000
commita0d9fb33f8475336fbdebdbab803f43c7b9107d4 (patch)
treeb89aa693d917976736a52dea805e91ad41afd7e2
parent8f8722d36a1341c08c86c4357da8f398cc31e771 (diff)
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 <samuli.piippo@qt.io>
-rw-r--r--meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass11
-rwxr-xr-xmeta-boot2qt/files/configure-qtcreator.sh12
2 files changed, 22 insertions, 1 deletions
diff --git a/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass b/meta-boot2qt/classes/populate_b2qt_qt5_sdk.bbclass
index e98565c1..ee1a25fe 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 105e4760..3e5db2d1 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}"