mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 06:09:52 -06:00
QNX: Compiler and feature detection fixes
Tested compiler detection with the QNX 7.0 list of compiler targets: * gcc_ntoaarch64le * gcc_ntoaarch64le_cxx * gcc_ntoarmv7le * gcc_ntoarmv7le_cxx * gcc_ntox86_cxx * gcc_ntoaarch64le_gpp * gcc_ntox86_64_gpp * gcc_ntoarmv7le_gpp * gcc_ntox86_64_cxx * gcc_ntox86 * gcc_ntox86_gpp * gcc_ntox86_64 This commit fixes some of the problems described in: https://cristianadam.eu/20181202/a-better-qnx-cmake-toolchain-file/
This commit is contained in:
@@ -136,7 +136,7 @@ endif ()
|
||||
# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
|
||||
if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
@@ -145,7 +145,7 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_C_COMPILER_TARGET}-)
|
||||
endif()
|
||||
elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
|
||||
if(CMAKE_C_COMPILER_TARGET MATCHES "gcc_nto([^_le]+)(le)?")
|
||||
if(CMAKE_C_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)?")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
@@ -133,7 +133,7 @@ endif ()
|
||||
|
||||
if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
@@ -142,7 +142,7 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_CXX_COMPILER_TARGET}-)
|
||||
endif()
|
||||
elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
|
||||
if(CMAKE_CXX_COMPILER_TARGET MATCHES "gcc_nto([^_le]+)(le)?")
|
||||
if(CMAKE_CXX_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
1
Modules/Compiler/QCC-C-FeatureTests.cmake
Normal file
1
Modules/Compiler/QCC-C-FeatureTests.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Compiler/GNU-C-FeatureTests)
|
||||
@@ -1,2 +1,5 @@
|
||||
# To include compiler feature detection
|
||||
include(Compiler/GNU-C)
|
||||
|
||||
include(Compiler/QCC)
|
||||
__compiler_qcc(C)
|
||||
|
||||
1
Modules/Compiler/QCC-CXX-FeatureTests.cmake
Normal file
1
Modules/Compiler/QCC-CXX-FeatureTests.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Compiler/GNU-CXX-FeatureTests)
|
||||
@@ -1,3 +1,6 @@
|
||||
# To include compiler feature detection
|
||||
include(Compiler/GNU-CXX)
|
||||
|
||||
include(Compiler/QCC)
|
||||
__compiler_qcc(CXX)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user