[Cmake-commits] CMake branch, next, updated. v3.5.2-957-g16ef561

Robert Maynard robert.maynard at kitware.com
Fri Apr 15 14:04:41 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  16ef561aad415cff24c23f12aaf598483d188f3c (commit)
       via  3ac4cb61b61b26a7d5041ddd0918d6db60469535 (commit)
      from  14261ea2d15d0d91f4bca3afc40d28a45687234d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16ef561aad415cff24c23f12aaf598483d188f3c
commit 16ef561aad415cff24c23f12aaf598483d188f3c
Merge: 14261ea 3ac4cb6
Author:     Robert Maynard <robert.maynard at kitware.com>
AuthorDate: Fri Apr 15 14:04:40 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Apr 15 14:04:40 2016 -0400

    Merge topic 'intel_compiler_feature_detection' into next
    
    3ac4cb61 Add C_STANDARD support to Intel C compilers


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3ac4cb61b61b26a7d5041ddd0918d6db60469535
commit 3ac4cb61b61b26a7d5041ddd0918d6db60469535
Author:     Robert Maynard <robert.maynard at kitware.com>
AuthorDate: Fri Apr 15 13:40:30 2016 -0400
Commit:     Robert Maynard <robert.maynard at kitware.com>
CommitDate: Fri Apr 15 14:03:23 2016 -0400

    Add C_STANDARD support to Intel C compilers

diff --git a/Modules/Compiler/Intel-C-FeatureTests.cmake b/Modules/Compiler/Intel-C-FeatureTests.cmake
new file mode 100644
index 0000000..bc40f69
--- /dev/null
+++ b/Modules/Compiler/Intel-C-FeatureTests.cmake
@@ -0,0 +1,20 @@
+# References:
+#   - https://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler
+#   - https://software.intel.com/en-us/articles/c99-support-in-intel-c-compiler
+#   - https://software.intel.com/en-us/articles/c11-support-in-intel-c-compiler
+
+set(_cmake_oldestSupported "__ICC >= 1110")
+
+set(DETECT_C99 "defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L")
+set(DETECT_C11 "defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L")
+
+set(Intel_C90 "${_cmake_oldestSupported}")
+set(Intel_C99 "${_cmake_oldestSupported} && ${DETECT_C99}")
+set(Intel_C11 "__ICC >= 1500 && ${DETECT_C11}")
+
+
+set(_cmake_feature_test_c_static_assert "${Intel_C11}")
+
+set(_cmake_feature_test_c_restrict "${Intel_C99}")
+set(_cmake_feature_test_c_variadic_macros "${Intel_C99}")
+set(_cmake_feature_test_c_function_prototypes "${Intel_C90}")
\ No newline at end of file
diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake
index 77363eb..16d68a2 100644
--- a/Modules/Compiler/Intel-C.cmake
+++ b/Modules/Compiler/Intel-C.cmake
@@ -8,5 +8,61 @@ set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
 
 set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
 
+if (WIN32)
+  set(_std -Qstd)
+else()
+  set(_std -std)
+endif()
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
+  set(CMAKE_C11_STANDARD_COMPILE_OPTION "${_std}=c11")
+  set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=c11")
+endif()
+
+if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
+  set(CMAKE_C90_STANDARD_COMPILE_OPTION "${_std}=c89")
+  set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=gnu89")
+  set(CMAKE_C99_STANDARD_COMPILE_OPTION "${_std}=c99")
+  set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=gnu99")
+endif()
+
+if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
+  if (NOT CMAKE_C_COMPILER_FORCED)
+    if (NOT CMAKE_C_STANDARD_COMPUTED_DEFAULT)
+      message(FATAL_ERROR "CMAKE_C_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_C_COMPILER_ID} (${CMAKE_C_COMPILER}) version ${CMAKE_C_COMPILER_VERSION}")
+    endif()
+    set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT})
+  elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT)
+    # Compiler id was forced so just guess the default standard level.
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+      set(CMAKE_C_STANDARD_DEFAULT 11)
+    else()
+      set(CMAKE_C_STANDARD_DEFAULT 90)
+    endif()
+  endif()
+endif()
+
+unset(_std)
+
+
+macro(cmake_record_c_compile_features)
+  macro(_get_gcc_features std_version list)
+    record_compiler_features(C "${std_version}" ${list})
+  endmacro()
+
+  set(_result 0)
+  if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+    _get_gcc_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} CMAKE_C11_COMPILE_FEATURES)
+  endif()
+  if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
+    if (_result EQUAL 0)
+      _get_gcc_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} CMAKE_C99_COMPILE_FEATURES)
+    endif()
+    if (_result EQUAL 0)
+      _get_gcc_features(${CMAKE_C90_STANDARD_COMPILE_OPTION} CMAKE_C90_COMPILE_FEATURES)
+    endif()
+  endif()
+endmacro()
+
 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>")

-----------------------------------------------------------------------

Summary of changes:
 Modules/Compiler/Intel-C-FeatureTests.cmake |   20 ++++++++++
 Modules/Compiler/Intel-C.cmake              |   56 +++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 Modules/Compiler/Intel-C-FeatureTests.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list