From 73277763c15c6117c14d60ac9c030d7618fa59e8 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 18 Aug 2020 17:06:55 +0200 Subject: CMake Build: Add QNX 7.1 build support This commit allows building Qt6's QtBase using QNX 7.1 and a toolchain file which is almost identical to what CMake has in its documentation: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-qnx set(CMAKE_SYSTEM_NAME QNX) set(arch gcc_ntoarmv7le) set(CMAKE_C_COMPILER qcc) set(CMAKE_C_COMPILER_TARGET ${arch}) set(CMAKE_CXX_COMPILER q++) set(CMAKE_CXX_COMPILER_TARGET ${arch}) set(CMAKE_SYSROOT $ENV{QNX_TARGET}) The only difference is the usage of q++ instead of QCC, which is no longer present in QNX 7.1 SDK. Task-number: QTBUG-83202 Change-Id: I51031540721275f2ee83cee9e7df4994a65db0e2 Reviewed-by: Alexandru Croitor --- cmake/QtBuild.cmake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'cmake') diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 32277a13cc..c1a14230d6 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -296,6 +296,21 @@ elseif(APPLE) set(QT_DEFAULT_MKSPEC macx-clang) elseif(EMSCRIPTEN) set(QT_DEFAULT_MKSPEC wasm-emscripten) +elseif(QNX) + # Certain POSIX defines are not set if we don't compile with -std=gnuXX + set(QT_ENABLE_CXX_EXTENSIONS ON) + + list(APPEND QT_DEFAULT_PLATFORM_DEFINITIONS _FORTIFY_SOURCE=2 _REENTRANT) + + set(compiler_aarch64le aarch64le) + set(compiler_armle-v7 armv7le) + set(compiler_x86-64 x86_64) + set(compiler_x86 x86) + foreach(arch aarch64le armle-v7 x86-64 x86) + if (CMAKE_CXX_COMPILER_TARGET MATCHES "${compiler_${arch}}") + set(QT_DEFAULT_MKSPEC qnx-${arch}-qcc) + endif() + endforeach() endif() if(NOT QT_QMAKE_TARGET_MKSPEC) -- cgit v1.2.3