[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