Ver Fonte

Features: Record standards and features for SunPro 5.14

Oracle Studio 12.5 adds support for C 11 and associated standard flags.
It also adds a few more C++ 11 features.
Brad King há 8 anos atrás
pai
commit
f15f905bab

+ 1 - 1
Help/manual/cmake-compile-features.7.rst

@@ -335,7 +335,7 @@ versions specified for each:
 * ``Clang``: Clang compiler versions 2.9 through 3.4.
 * ``Clang``: Clang compiler versions 2.9 through 3.4.
 * ``GNU``: GNU compiler versions 4.4 through 5.0.
 * ``GNU``: GNU compiler versions 4.4 through 5.0.
 * ``MSVC``: Microsoft Visual Studio versions 2010 through 2015.
 * ``MSVC``: Microsoft Visual Studio versions 2010 through 2015.
-* ``SunPro``: Oracle SolarisStudio version 12.4.
+* ``SunPro``: Oracle SolarisStudio versions 12.4 through 12.5.
 * ``Intel``: Intel compiler versions 12.1 through 17.0.
 * ``Intel``: Intel compiler versions 12.1 through 17.0.
 
 
 CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`
 CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`

+ 14 - 0
Modules/Compiler/SunPro-C.cmake

@@ -1,3 +1,8 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(Compiler/SunPro)
+
 set(CMAKE_C_VERBOSE_FLAG "-#")
 set(CMAKE_C_VERBOSE_FLAG "-#")
 
 
 set(CMAKE_C_COMPILE_OPTIONS_PIC -KPIC)
 set(CMAKE_C_COMPILE_OPTIONS_PIC -KPIC)
@@ -22,5 +27,14 @@ foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
   set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic")
   set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic")
 endforeach()
 endforeach()
 
 
+if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.14)
+  set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
+  set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=c90")
+  set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
+  set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=c11")
+endif()
+
+__compiler_check_default_language_standard(C 5.13 90 5.14 11)
+
 set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
 set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
 set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
 set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")

+ 4 - 0
Modules/Compiler/SunPro-CXX-FeatureTests.cmake

@@ -5,6 +5,10 @@
 
 
 set(_cmake_oldestSupported "__SUNPRO_CC >= 0x5130")
 set(_cmake_oldestSupported "__SUNPRO_CC >= 0x5130")
 
 
+set(SolarisStudio125_CXX11 "(__SUNPRO_CC >= 0x5140) && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_binary_literals "${SolarisStudio125_CXX11}")
+set(_cmake_feature_test_cxx_reference_qualified_functions "${SolarisStudio125_CXX11}")
+
 set(SolarisStudio124_CXX11 "(__SUNPRO_CC >= 0x5130) && __cplusplus >= 201103L")
 set(SolarisStudio124_CXX11 "(__SUNPRO_CC >= 0x5130) && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_alignas "${SolarisStudio124_CXX11}")
 set(_cmake_feature_test_cxx_alignas "${SolarisStudio124_CXX11}")
 set(_cmake_feature_test_cxx_alignof "${SolarisStudio124_CXX11}")
 set(_cmake_feature_test_cxx_alignof "${SolarisStudio124_CXX11}")