summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-09-26 13:22:58 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-09-26 13:23:10 (GMT)
commit0be496cb5a3bfd643d3c86c59e9ab320f3557cf9 (patch)
treeb2e1b2b2b00c1a0f54b18372473c5ad6cb065919 /Modules
parent187fb1911f6415362fc036d76fb4756317a52c2a (diff)
parentf8fa4f1ad7b718cc3724f5015d3fd4374cff75d4 (diff)
downloadCMake-0be496cb5a3bfd643d3c86c59e9ab320f3557cf9.zip
CMake-0be496cb5a3bfd643d3c86c59e9ab320f3557cf9.tar.gz
CMake-0be496cb5a3bfd643d3c86c59e9ab320f3557cf9.tar.bz2
Merge topic 'orangec-compiler'
f8fa4f1ad7 ci: Add OrangeC 6.73.1 nightly CI job 531b4fe643 OrangeC: Add support for OrangeC compiler 10f435a58f Tests: Simplify nested if conditions in Complex tests Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Victor <lostfreeman@gmail.com> Merge-request: !8592
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeCompilerIdDetection.cmake1
-rw-r--r--Modules/CMakeDetermineASMCompiler.cmake4
-rw-r--r--Modules/Compiler/OrangeC-ASM.cmake7
-rw-r--r--Modules/Compiler/OrangeC-C.cmake20
-rw-r--r--Modules/Compiler/OrangeC-CXX.cmake25
-rw-r--r--Modules/Compiler/OrangeC-DetermineCompiler.cmake7
-rw-r--r--Modules/Compiler/OrangeC.cmake33
-rw-r--r--Modules/Platform/Windows-OrangeC-C.cmake2
-rw-r--r--Modules/Platform/Windows-OrangeC-CXX.cmake2
-rw-r--r--Modules/Platform/Windows-OrangeC.cmake10
10 files changed, 111 insertions, 0 deletions
diff --git a/Modules/CMakeCompilerIdDetection.cmake b/Modules/CMakeCompilerIdDetection.cmake
index 3a2b51f..7eb93e2 100644
--- a/Modules/CMakeCompilerIdDetection.cmake
+++ b/Modules/CMakeCompilerIdDetection.cmake
@@ -72,6 +72,7 @@ function(compiler_id_detection outvar lang)
Fujitsu
GHS
Tasking
+ OrangeC
)
if ("x${lang}" STREQUAL "xC")
list(APPEND ordered_compilers
diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 8ec6c66..6d7d17e 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -70,6 +70,10 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMClang "--version")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMClang "armclang")
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS OrangeC )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_OrangeC "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_OrangeC "occ \\(OrangeC\\) Version")
+
list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS HP )
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_HP "-V")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_HP "HP C")
diff --git a/Modules/Compiler/OrangeC-ASM.cmake b/Modules/Compiler/OrangeC-ASM.cmake
new file mode 100644
index 0000000..fe78911
--- /dev/null
+++ b/Modules/Compiler/OrangeC-ASM.cmake
@@ -0,0 +1,7 @@
+include(Compiler/OrangeC)
+__compiler_orangec(ASM)
+
+set(CMAKE_ASM_OUTPUT_EXTENSION ".o")
+set(CMAKE_ASM_VERBOSE_FLAG "-yyyyy")
+
+set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm;nas)
diff --git a/Modules/Compiler/OrangeC-C.cmake b/Modules/Compiler/OrangeC-C.cmake
new file mode 100644
index 0000000..15a6476
--- /dev/null
+++ b/Modules/Compiler/OrangeC-C.cmake
@@ -0,0 +1,20 @@
+include(Compiler/OrangeC)
+include(Compiler/CMakeCommonCompilerMacros)
+
+set(CMAKE_C_OUTPUT_EXTENSION ".o")
+set(CMAKE_C_VERBOSE_FLAG "-yyyyy")
+set(CMAKE_C_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c)
+
+set(CMAKE_C90_STANDARD_COMPILE_OPTION -std=c89)
+set(CMAKE_C90_EXTENSION_COMPILE_OPTION -std=c89)
+set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
+set(CMAKE_C99_STANDARD_COMPILE_OPTION -std=c99)
+set(CMAKE_C99_EXTENSION_COMPILE_OPTION -std=c99)
+set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
+set(CMAKE_C11_STANDARD_COMPILE_OPTION -std=c11)
+set(CMAKE_C11_EXTENSION_COMPILE_OPTION -std=c11)
+set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
+
+__compiler_orangec(C)
+#- 6.38 is the earliest version which version info is available in the preprocessor
+__compiler_check_default_language_standard(C 6.38 11)
diff --git a/Modules/Compiler/OrangeC-CXX.cmake b/Modules/Compiler/OrangeC-CXX.cmake
new file mode 100644
index 0000000..3f9d59c
--- /dev/null
+++ b/Modules/Compiler/OrangeC-CXX.cmake
@@ -0,0 +1,25 @@
+include(Compiler/OrangeC)
+include(Compiler/CMakeCommonCompilerMacros)
+
+set(_ORANGEC_COMPILE_CXX " -x c++")
+set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
+
+set(CMAKE_CXX_OUTPUT_EXTENSION ".o")
+set(CMAKE_CXX_VERBOSE_FLAG "-yyyyy")
+
+
+
+#- OrangeC is a little lax when accepting compiler version specifications.
+# Usually changing the version only changes the value of __cplusplus.
+# Also we don't support CXX98
+set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++11")
+set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+
+set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++14")
+set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+
+__compiler_orangec(CXX)
+#- 6.38 is the earliest version which version info is available in the preprocessor
+__compiler_check_default_language_standard(CXX 6.38 14)
diff --git a/Modules/Compiler/OrangeC-DetermineCompiler.cmake b/Modules/Compiler/OrangeC-DetermineCompiler.cmake
new file mode 100644
index 0000000..2ecc140
--- /dev/null
+++ b/Modules/Compiler/OrangeC-DetermineCompiler.cmake
@@ -0,0 +1,7 @@
+
+set(_compiler_id_pp_test "defined(__ORANGEC__)")
+
+set(_compiler_id_version_compute "
+# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__ORANGEC_MAJOR__)
+# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__ORANGEC_MINOR__)
+# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__ORANGEC_PATCHLEVEL__)")
diff --git a/Modules/Compiler/OrangeC.cmake b/Modules/Compiler/OrangeC.cmake
new file mode 100644
index 0000000..fbb245b
--- /dev/null
+++ b/Modules/Compiler/OrangeC.cmake
@@ -0,0 +1,33 @@
+include_guard()
+
+macro(__compiler_orangec lang)
+ if ("x${lang}" MATCHES "^x(C|CXX)$")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${_ORANGEC_COMPILE_${lang}} -! <SOURCE> <DEFINES> <INCLUDES> <FLAGS> +i -o <PREPROCESSED_SOURCE>")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${_ORANGEC_COMPILE_${lang}} -! <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -S -o <ASSEMBLY_SOURCE>")
+ endif()
+ set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${_ORANGEC_COMPILE_${lang}} -! -c <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+ unset(_ORANGEC_COMPILE_${lang})
+
+ set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+ set(CMAKE_${lang}_DEPFILE_FORMAT gcc)
+ set(CMAKE_${lang}_DEPENDS_USE_COMPILER TRUE)
+
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O2 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -O1 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
+
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
+ "<CMAKE_${lang}_COMPILER> -! -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
+ set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_${lang}_COMPILER> -! <FLAGS> -o <TARGET> --out-implib <TARGET_IMPLIB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "<CMAKE_${lang}_COMPILER> -! <FLAGS> -o <TARGET> --out-implib <TARGET_IMPLIB> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
+
+ set(CMAKE_LIBRARY_PATH_FLAG "-L")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-! -shared")
+
+ set(CMAKE_${lang}_RESPONSE_FILE_FLAG "@")
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@")
+endmacro()
diff --git a/Modules/Platform/Windows-OrangeC-C.cmake b/Modules/Platform/Windows-OrangeC-C.cmake
new file mode 100644
index 0000000..6b7e6b5
--- /dev/null
+++ b/Modules/Platform/Windows-OrangeC-C.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-OrangeC)
+__windows_compiler_orangec(C)
diff --git a/Modules/Platform/Windows-OrangeC-CXX.cmake b/Modules/Platform/Windows-OrangeC-CXX.cmake
new file mode 100644
index 0000000..7de6716
--- /dev/null
+++ b/Modules/Platform/Windows-OrangeC-CXX.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-OrangeC)
+__windows_compiler_orangec(CXX)
diff --git a/Modules/Platform/Windows-OrangeC.cmake b/Modules/Platform/Windows-OrangeC.cmake
new file mode 100644
index 0000000..4f66e0e
--- /dev/null
+++ b/Modules/Platform/Windows-OrangeC.cmake
@@ -0,0 +1,10 @@
+set(CMAKE_LINK_LIBRARY_SUFFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".l")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".l")
+set(CMAKE_FIND_LIBRARY_PREFIXES "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".l")
+
+macro(__windows_compiler_orangec lang)
+ set(CMAKE_${lang}_CREATE_WIN32_EXE "-Wg")
+ set(CMAKE_${lang}_CREATE_CONSOLE_EXE "-Wc")
+endmacro()