From f15f905babad5977aa422e1753fe1aa658c77fa2 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 3 May 2017 13:07:09 -0400 Subject: 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. --- Help/manual/cmake-compile-features.7.rst | 2 +- Modules/Compiler/SunPro-C.cmake | 14 ++++++++++++++ Modules/Compiler/SunPro-CXX-FeatureTests.cmake | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Help/manual/cmake-compile-features.7.rst b/Help/manual/cmake-compile-features.7.rst index 448fe9a..fa2aa8d 100644 --- a/Help/manual/cmake-compile-features.7.rst +++ b/Help/manual/cmake-compile-features.7.rst @@ -335,7 +335,7 @@ versions specified for each: * ``Clang``: Clang compiler versions 2.9 through 3.4. * ``GNU``: GNU compiler versions 4.4 through 5.0. * ``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. CMake is currently aware of the :prop_tgt:`C standards ` diff --git a/Modules/Compiler/SunPro-C.cmake b/Modules/Compiler/SunPro-C.cmake index 503684a..263bbe4 100644 --- a/Modules/Compiler/SunPro-C.cmake +++ b/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_COMPILE_OPTIONS_PIC -KPIC) @@ -22,5 +27,14 @@ foreach(type SHARED_LIBRARY SHARED_MODULE EXE) set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic") 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 " -E > ") set(CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") diff --git a/Modules/Compiler/SunPro-CXX-FeatureTests.cmake b/Modules/Compiler/SunPro-CXX-FeatureTests.cmake index 8e97e1d..60280ca 100644 --- a/Modules/Compiler/SunPro-CXX-FeatureTests.cmake +++ b/Modules/Compiler/SunPro-CXX-FeatureTests.cmake @@ -5,6 +5,10 @@ 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(_cmake_feature_test_cxx_alignas "${SolarisStudio124_CXX11}") set(_cmake_feature_test_cxx_alignof "${SolarisStudio124_CXX11}") -- cgit v0.12