summaryrefslogtreecommitdiff
path: root/platform/qt/qnx.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'platform/qt/qnx.cmake')
-rw-r--r--platform/qt/qnx.cmake77
1 files changed, 77 insertions, 0 deletions
diff --git a/platform/qt/qnx.cmake b/platform/qt/qnx.cmake
new file mode 100644
index 0000000000..7033f62362
--- /dev/null
+++ b/platform/qt/qnx.cmake
@@ -0,0 +1,77 @@
+# CMake toolchain file for QNX Environment.
+#
+# Usage:
+#
+# To use this file, you need to set the 'CMAKE_TOOLCHAIN_FILE' to point to
+# 'qnx.cmake' on the command line:
+#
+# cmake -DDCMAKE_TOOLCHAIN_FILE=platform/qt/qnx.cmake
+#
+# You will also need to provide the locations of the QNX HOST and TARGET locations.
+# This can be done by setting the environment variables(QNX_HOST and QNX_TARGET) from
+# the command line or running the environment setup script provided by the QNX Software
+# Development Platform:
+#
+# source <SDP_DIRECTORY>/qnxsdp-env.sh
+#
+# Options:
+#
+# QCC_COMPILER_TARGET:
+# The compiler name. Default: gcc_ntox86_64.
+# QCC_NTOARCH:
+# The architecture to compile for. Default: x86_64.
+# QNX_HOST:
+# Environment variable to QNX host build tools location.
+# QNX_TARGET:
+# Environment variable to QNX target location.
+
+set(CMAKE_SYSTEM_NAME QNX)
+set(CMAKE_HOST_SYSTEM_NAME QNX)
+SET(CMAKE_SYSTEM_VERSION 7.0.0)
+set(QCC_COMPILER_TARGET "$ENV{QCC_COMPILER_TARGET}")
+set(QCC_NTOARCH "$ENV{QCC_NTOARCH}")
+
+#Check environment variables
+if ("$ENV{QNX_HOST}" STREQUAL "")
+ message(FATAL_ERROR "QNX_HOST environment variable not set")
+endif()
+
+if ("$ENV{QNX_TARGET}" STREQUAL "")
+ message(FATAL_ERROR "QNX_TARGET environment variable not set")
+endif()
+
+set(QNX_HOST "$ENV{QNX_HOST}")
+set(QNX_TARGET "$ENV{QNX_TARGET}")
+
+# Use 'qcc' instead of nto${QCC_NTOARCH}-gcc and nto${QCC_NTOARCH}-gcc++ once
+# the issue https://gitlab.kitware.com/cmake/cmake/issues/17126 is resolved.
+#set(CMAKE_C_COMPILER qcc)
+#set(CMAKE_C_COMPILER_TARGET ${QCC_COMPILER_TARGET})
+#set(CMAKE_CXX_COMPILER QCC)
+#set(CMAKE_CXX_COMPILER_TARGET ${QCC_COMPILER_TARGET})
+
+set(CMAKE_C_COMPILER ${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-gcc)
+set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-g++")
+
+set(CMAKE_LINKER "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ld" CACHE PATH "QNX linker program" FORCE)
+set(CMAKE_AR "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ar" CACHE PATH "QNX ar program" FORCE)
+set(CMAKE_NM "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-nm" CACHE PATH "QNX nm program" FORCE)
+set(CMAKE_OBJCOPY "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-objcopy" CACHE PATH "QNX objcopy program" FORCE)
+set(CMAKE_OBJDUMP "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-objdump" CACHE PATH "QNX objdump program" FORCE)
+set(CMAKE_RANLIB "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-ranlib" CACHE PATH "QNX ranlib program" FORCE)
+set(CMAKE_STRIP "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-strip" CACHE PATH "QNX strip program" FORCE)
+set (CMAKE_SH "${QNX_HOST}/usr/bin/sh" CACHE PATH "QNX shell program" FORCE)
+
+set(CMAKE_C_FLAGS_DEBUG "-g")
+set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
+set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -D_DEBUG")
+set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
+set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
+
+set(CMAKE_FIND_ROOT_PATH "${QNX_TARGET}")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)