mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
Merge topic 'objc-std-17-23'
e8dc95ae1e
ObjectiveC: Add C17 and C23 support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6219
This commit is contained in:
4
Help/release/dev/objc-std-17-23.rst
Normal file
4
Help/release/dev/objc-std-17-23.rst
Normal file
@@ -0,0 +1,4 @@
|
||||
objc-std-17-23
|
||||
--------------
|
||||
|
||||
* :prop_tgt:`OBJC_STANDARD` gained support for C17 and C23.
|
@@ -9,6 +9,8 @@ set(CMAKE_OBJC_COMPILE_FEATURES "@CMAKE_OBJC_COMPILE_FEATURES@")
|
||||
set(CMAKE_OBJC90_COMPILE_FEATURES "@CMAKE_OBJC90_COMPILE_FEATURES@")
|
||||
set(CMAKE_OBJC99_COMPILE_FEATURES "@CMAKE_OBJC99_COMPILE_FEATURES@")
|
||||
set(CMAKE_OBJC11_COMPILE_FEATURES "@CMAKE_OBJC11_COMPILE_FEATURES@")
|
||||
set(CMAKE_OBJC17_COMPILE_FEATURES "@CMAKE_OBJC17_COMPILE_FEATURES@")
|
||||
set(CMAKE_OBJC23_COMPILE_FEATURES "@CMAKE_OBJC23_COMPILE_FEATURES@")
|
||||
|
||||
set(CMAKE_OBJC_PLATFORM_ID "@CMAKE_OBJC_PLATFORM_ID@")
|
||||
set(CMAKE_OBJC_SIMULATE_ID "@CMAKE_OBJC_SIMULATE_ID@")
|
||||
|
@@ -27,6 +27,10 @@ char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
# else
|
||||
# define C_DIALECT
|
||||
# endif
|
||||
#elif __STDC_VERSION__ > 201710L
|
||||
# define C_DIALECT "23"
|
||||
#elif __STDC_VERSION__ >= 201710L
|
||||
# define C_DIALECT "17"
|
||||
#elif __STDC_VERSION__ >= 201000L
|
||||
# define C_DIALECT "11"
|
||||
#elif __STDC_VERSION__ >= 199901L
|
||||
|
@@ -23,4 +23,18 @@ if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 4.0)
|
||||
set(CMAKE_OBJC11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(OBJC 4.0 99)
|
||||
# AppleClang 10.0 was the oldest compiler available to test C17 support
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 10.0)
|
||||
set(CMAKE_OBJC17_STANDARD_COMPILE_OPTION "-std=c17")
|
||||
set(CMAKE_OBJC17_EXTENSION_COMPILE_OPTION "-std=gnu17")
|
||||
set(CMAKE_OBJC17_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 11.0)
|
||||
set(CMAKE_OBJC23_STANDARD_COMPILE_OPTION "-std=c2x")
|
||||
set(CMAKE_OBJC23_EXTENSION_COMPILE_OPTION "-std=gnu2x")
|
||||
set(CMAKE_OBJC23_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
# AppleClang 10.0 was the oldest compiler available to test default C11 support
|
||||
__compiler_check_default_language_standard(OBJC 4.0 99 10.0 11)
|
||||
|
@@ -24,4 +24,16 @@ if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
set(CMAKE_OBJC11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 6.0)
|
||||
set(CMAKE_OBJC17_STANDARD_COMPILE_OPTION "-std=c17")
|
||||
set(CMAKE_OBJC17_EXTENSION_COMPILE_OPTION "-std=gnu17")
|
||||
set(CMAKE_OBJC17_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 9.0)
|
||||
set(CMAKE_OBJC23_STANDARD_COMPILE_OPTION "-std=c2x")
|
||||
set(CMAKE_OBJC23_EXTENSION_COMPILE_OPTION "-std=gnu2x")
|
||||
set(CMAKE_OBJC23_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(OBJC 3.4 99 3.6 11)
|
||||
|
@@ -322,8 +322,9 @@ std::unordered_map<std::string, StanardLevelComputer> StandardComputerMapping =
|
||||
"CUDA", std::vector<int>{ 03, 11, 14, 17, 20, 23 },
|
||||
std::vector<std::string>{ "03", "11", "14", "17", "20", "23" } } },
|
||||
{ "OBJC",
|
||||
StanardLevelComputer{ "OBJC", std::vector<int>{ 90, 99, 11 },
|
||||
std::vector<std::string>{ "90", "99", "11" } } },
|
||||
StanardLevelComputer{
|
||||
"OBJC", std::vector<int>{ 90, 99, 11, 17, 23 },
|
||||
std::vector<std::string>{ "90", "99", "11", "17", "23" } } },
|
||||
{ "OBJCXX",
|
||||
StanardLevelComputer{
|
||||
"OBJCXX", std::vector<int>{ 98, 11, 14, 17, 20, 23 },
|
||||
|
Reference in New Issue
Block a user