PellesC: Add support for C language standards

Issue: #21536
Inspired-by: Serguei E. Leontiev <leo@sai.msu.ru>
This commit is contained in:
Brad King
2026-04-27 13:48:49 -04:00
parent 8e76e3c827
commit da33d606e6
5 changed files with 25 additions and 0 deletions
@@ -1,6 +1,8 @@
set(CMake_TEST_CXX OFF CACHE BOOL "")
set(CMake_TEST_Java OFF CACHE BOOL "")
set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
set(configure_no_sccache 1)
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
+2
View File
@@ -74,6 +74,8 @@ const char* info_language_extensions_default = "INFO" ":" "extensions_default["
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#elif defined(__POCC__) && defined(__POCC__EXTENSIONS)
"ON"
#else
"OFF"
#endif
+18
View File
@@ -6,3 +6,21 @@ __compiler_pellesc(C)
set(CMAKE_C_OUTPUT_EXTENSION ".obj")
set(CMAKE_C_VERBOSE_FLAG "-V2")
include (Compiler/CMakeCommonCompilerMacros)
set(CMAKE_C90_STANDARD_COMPILE_OPTION "") # No C90-only mode.
set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
set(CMAKE_C99_STANDARD_COMPILE_OPTION -std=c99)
set(CMAKE_C99_EXTENSION_COMPILE_OPTION -std=c99 -Zx)
set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
set(CMAKE_C11_STANDARD_COMPILE_OPTION -std=c11)
set(CMAKE_C11_EXTENSION_COMPILE_OPTION -std=c11 -Zx)
set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
set(CMAKE_C17_STANDARD_COMPILE_OPTION -std=c17)
set(CMAKE_C17_EXTENSION_COMPILE_OPTION -std=c17 -Zx)
set(CMAKE_C23_STANDARD_COMPILE_OPTION -std=c23)
set(CMAKE_C23_EXTENSION_COMPILE_OPTION -std=c23 -Zx)
set(CMAKE_C_STANDARD_LATEST 23)
__compiler_check_default_language_standard(C 12.0 23)
+1
View File
@@ -440,6 +440,7 @@ if(BUILD_TESTING)
)
ADD_TEST_MACRO(CompileFeatures CompileFeatures)
set_property(TEST CompileFeatures APPEND PROPERTY LABELS "CUDA" "HIP")
set_property(TEST CompileFeatures APPEND PROPERTY LABELS "PellesC")
ADD_TEST_MACRO(CMakeCommands.target_compile_features)
+2
View File
@@ -5,4 +5,6 @@
#ifdef __STDC_VERSION__
# define C_STD __STDC_VERSION__
#elif defined(__POCC_STDC_VERSION__)
# define C_STD __POCC_STDC_VERSION__
#endif