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  c8e7c7c1e546dd208a6f454dc6f4de9d892f9e2c (commit)
       via  9b9313b1af045f46791a49b5a229e99f1073f723 (commit)
       via  402f7e24896467ddc40dba60efb4d32bc963c67e (commit)
       via  ad20143a819367edc06a2dab45e5c9a223911046 (commit)
       via  8e0f17d63bcd6f00f36f7c887ca3043593aa3e4c (commit)
      from  62a4f33bb4fd75931de450d8284d647217b9df51 (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=c8e7c7c1e546dd208a6f454dc6f4de9d892f9e2c
commit c8e7c7c1e546dd208a6f454dc6f4de9d892f9e2c
Merge: 62a4f33 9b9313b
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Apr 18 15:57:07 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Mon Apr 18 15:57:07 2016 -0400

    Merge topic 'intel-compiler-features' into next
    
    9b9313b1 WCDH: Add Intel to list of supported compilers
    402f7e24 Features: Record standards and features for Intel C on UNIX
    ad20143a Features: Record standards and features for Intel C++ on UNIX
    8e0f17d6 Features: Detect C default dialect on MSVC-like compilers


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9b9313b1af045f46791a49b5a229e99f1073f723
commit 9b9313b1af045f46791a49b5a229e99f1073f723
Author:     Robert Maynard <robert.mayn...@kitware.com>
AuthorDate: Thu Apr 14 08:57:07 2016 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 18 15:54:46 2016 -0400

    WCDH: Add Intel to list of supported compilers

diff --git a/Modules/WriteCompilerDetectionHeader.cmake 
b/Modules/WriteCompilerDetectionHeader.cmake
index a3b73bb..2669a84 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -36,7 +36,7 @@
 #      PREFIX ClimbingStats
 #      OUTPUT_FILES_VAR support_files
 #      OUTPUT_DIR compilers
-#      COMPILERS GNU Clang MSVC
+#      COMPILERS GNU Clang MSVC Intel
 #      FEATURES cxx_variadic_templates
 #    )
 #    install(FILES
@@ -100,7 +100,7 @@
 #    write_compiler_detection_header(
 #      FILE climbingstats_compiler_detection.h
 #      PREFIX ClimbingStats
-#      COMPILERS GNU Clang AppleClang MSVC
+#      COMPILERS GNU Clang AppleClang MSVC Intel
 #      FEATURES cxx_variadic_templates
 #    )
 #
@@ -323,6 +323,7 @@ function(write_compiler_detection_header
     AppleClang
     MSVC
     SunPro
+    Intel
   )
 
   set(_hex_compilers ADSP Borland Embarcadero SunPro)
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt 
b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index c538280..0fc25dc 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -11,7 +11,7 @@ get_property(c_known_features GLOBAL PROPERTY 
CMAKE_C_KNOWN_FEATURES)
 write_compiler_detection_header(
   FILE "${CMAKE_CURRENT_BINARY_DIR}/test_compiler_detection.h"
   PREFIX TEST
-  COMPILERS GNU Clang AppleClang MSVC SunPro
+  COMPILERS GNU Clang AppleClang MSVC SunPro Intel
   VERSION 3.1
   PROLOG "// something"
   EPILOG "// more"
@@ -78,6 +78,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
   endif()
 endif()
 
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+  list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
+  list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
+  set(true_defs "")
+endif()
+
 if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
     OR CMAKE_C_COMPILER_ID STREQUAL "Clang"
     OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
@@ -104,7 +110,7 @@ write_compiler_detection_header(
   PREFIX MULTI
   OUTPUT_FILES_VAR multi_files
   OUTPUT_DIR 
"${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support"
-  COMPILERS GNU Clang AppleClang MSVC SunPro
+  COMPILERS GNU Clang AppleClang MSVC SunPro Intel
   VERSION 3.1
   FEATURES
     ${cxx_known_features} ${c_known_features}

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=402f7e24896467ddc40dba60efb4d32bc963c67e
commit 402f7e24896467ddc40dba60efb4d32bc963c67e
Author:     Robert Maynard <robert.mayn...@kitware.com>
AuthorDate: Fri Apr 15 13:40:30 2016 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 18 15:54:44 2016 -0400

    Features: Record standards and features for Intel C on UNIX
    
    Skip this for now on Windows where Intel C simulates MSVC.

diff --git a/Modules/Compiler/Intel-C-FeatureTests.cmake 
b/Modules/Compiler/Intel-C-FeatureTests.cmake
new file mode 100644
index 0000000..bd1a290
--- /dev/null
+++ b/Modules/Compiler/Intel-C-FeatureTests.cmake
@@ -0,0 +1,25 @@
+# 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
+
+# FIXME: Intel C feature detection works only when simulating the GNU compiler.
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+  return()
+endif()
+
+set(_cmake_oldestSupported "__INTEL_COMPILER >= 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 "__INTEL_COMPILER >= 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}")
diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake
index 77363eb..006ba1f 100644
--- a/Modules/Compiler/Intel-C.cmake
+++ b/Modules/Compiler/Intel-C.cmake
@@ -8,5 +8,55 @@ set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
 
 set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
 
+if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+  if (NOT CMAKE_C_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=c89")
+    set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
+    set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=c99")
+  endif()
+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()
+
+macro(cmake_record_c_compile_features)
+  macro(_get_intel_c_features std_version list)
+    record_compiler_features(C "${std_version}" ${list})
+  endmacro()
+
+  set(_result 0)
+  if (NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC" AND
+      NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+      _get_intel_c_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} 
CMAKE_C11_COMPILE_FEATURES)
+    endif()
+    if (_result EQUAL 0)
+      _get_intel_c_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} 
CMAKE_C99_COMPILE_FEATURES)
+    endif()
+    if (_result EQUAL 0)
+      _get_intel_c_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>")
diff --git a/Tests/CompileFeatures/CMakeLists.txt 
b/Tests/CompileFeatures/CMakeLists.txt
index e6acee8..9f08523 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -226,6 +226,16 @@ if (CMAKE_C_COMPILE_FEATURES)
     list(APPEND expected_defs
       EXPECT_C_STATIC_ASSERT=1
     )
+  elseif (CMAKE_C_COMPILER_ID STREQUAL "Intel")
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15)
+      list(APPEND expected_defs
+        EXPECT_C_STATIC_ASSERT=1
+        )
+    else()
+      list(APPEND expected_defs
+        EXPECT_C_STATIC_ASSERT=0
+        )
+    endif()
   endif()
 
   list(APPEND expected_defs

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ad20143a819367edc06a2dab45e5c9a223911046
commit ad20143a819367edc06a2dab45e5c9a223911046
Author:     Levi Morrison <morrison.l...@gmail.com>
AuthorDate: Mon Nov 16 09:19:30 2015 -0700
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 18 15:43:02 2016 -0400

    Features: Record standards and features for Intel C++ on UNIX
    
    Skip this for now on Windows where Intel C++ simulates MSVC.

diff --git a/Help/manual/cmake-compile-features.7.rst 
b/Help/manual/cmake-compile-features.7.rst
index caf5bac..366d4ec 100644
--- a/Help/manual/cmake-compile-features.7.rst
+++ b/Help/manual/cmake-compile-features.7.rst
@@ -309,3 +309,4 @@ versions specified for each:
 * ``GNU``: GNU compiler versions 4.4 through 5.0.
 * ``MSVC``: Microsoft Visual Studio versions 2010 through 2015.
 * ``SunPro``: Oracle SolarisStudio version 12.4.
+* ``Intel``: Intel compiler versions 12.0 through 16.0 on UNIX platforms.
diff --git a/Help/release/dev/intel-compiler-features.rst 
b/Help/release/dev/intel-compiler-features.rst
new file mode 100644
index 0000000..f154dc9
--- /dev/null
+++ b/Help/release/dev/intel-compiler-features.rst
@@ -0,0 +1,6 @@
+intel-compiler-features
+-----------------------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+  is now aware of features supported by Intel C++ compilers versions 12.1
+  through 16.0 on UNIX platforms.
diff --git a/Modules/Compiler/Intel-CXX-FeatureTests.cmake 
b/Modules/Compiler/Intel-CXX-FeatureTests.cmake
new file mode 100644
index 0000000..e4dca08
--- /dev/null
+++ b/Modules/Compiler/Intel-CXX-FeatureTests.cmake
@@ -0,0 +1,96 @@
+# References:
+#   - 
https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler
+#   - 
https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler
+
+# FIXME: Intel C++ feature detection works only when simulating the GNU 
compiler.
+# When simulating MSVC, Intel always sets __cplusplus to 199711L.
+if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+  return()
+endif()
+
+# these are not implemented in any version at time of writing
+#set(_cmake_feature_test_cxx_variable_templates "${Intel15_CXX14}")
+#set(_cmake_feature_test_cxx_relaxed_constexpr "${Intel15_CXX14}")
+
+# unknown if this is implemented
+#set(_cmake_feature_test_cxx_aggregate_default_initializers "${Intel15_CXX14}")
+
+set(DETECT_CXX11 "((__cplusplus >= 201103L) ||  defined(__INTEL_CXX11_MODE__) 
|| defined(__GXX_EXPERIMENTAL_CXX0X__))")
+set(DETECT_CXX14 "((__cplusplus >= 201103L) && 
!defined(__INTEL_CXX11_MODE__))")
+
+set(Intel16_CXX14 "__INTEL_COMPILER >= 1600 && ${DETECT_CXX14}")
+set(_cmake_feature_test_cxx_contextual_conversions "${Intel16_CXX14}")
+set(_cmake_feature_test_cxx_generic_lambdas "${Intel16_CXX14}")
+set(_cmake_feature_test_cxx_digit_separators "${Intel16_CXX14}")
+# This test is supposed to work in Intel 14 but the compiler has a bug
+# in versions 14 and 15::
+# https://software.intel.com/en-us/forums/intel-c-compiler/topic/600514
+set(_cmake_feature_test_cxx_generalized_initializers "${Intel16_CXX14}")
+
+set(Intel15_CXX14 "__INTEL_COMPILER >= 1500 && ${DETECT_CXX14}")
+set(_cmake_feature_test_cxx_decltype_auto "${Intel15_CXX14}")
+set(_cmake_feature_test_cxx_lambda_init_captures "${Intel15_CXX14}")
+set(_cmake_feature_test_cxx_attribute_deprecated "${Intel15_CXX14}")
+set(_cmake_feature_test_cxx_return_type_deduction "${Intel15_CXX14}")
+
+set(Intel15_CXX11 "__INTEL_COMPILER >= 1500 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_alignas "${Intel15_CXX11}")
+set(_cmake_feature_test_cxx_alignof "${Intel15_CXX11}")
+set(_cmake_feature_test_cxx_inheriting_constructors "${Intel15_CXX11}")
+set(_cmake_feature_test_cxx_user_literals "${Intel15_CXX11}")
+set(_cmake_feature_test_cxx_thread_local "${Intel15_CXX11}")
+
+set(Intel14_CXX11 "${DETECT_CXX11} && (__INTEL_COMPILER > 1400 || 
(__INTEL_COMPILER == 1400 && __INTEL_COMPILER_UPDATE >= 2))")
+# Documented as 12.0+ but in testing it only works on 14.0.2+
+set(_cmake_feature_test_cxx_decltype_incomplete_return_types 
"${Intel14_CXX11}")
+
+set(Intel14_CXX11 "__INTEL_COMPILER >= 1400 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_delegating_constructors "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_constexpr "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_sizeof_member "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_strong_enums "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_reference_qualified_functions "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_raw_string_literals "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_unicode_literals "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_inline_namespaces "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_unrestricted_unions "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_nonstatic_member_init "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_enum_forward_declarations "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_override "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_final "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_noexcept "${Intel14_CXX11}")
+set(_cmake_feature_test_cxx_defaulted_move_initializers "${Intel14_CXX11}")
+
+set(Intel13_CXX11 "__INTEL_COMPILER >= 1300 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_explicit_conversions "${Intel13_CXX11}")
+set(_cmake_feature_test_cxx_range_for "${Intel13_CXX11}")
+# Cannot find Intel documentation for N2640: cxx_uniform_initialization
+set(_cmake_feature_test_cxx_uniform_initialization "${Intel13_CXX11}")
+
+set(Intel121_CXX11 "__INTEL_COMPILER >= 1210 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_variadic_templates "${Intel121_CXX11}")
+set(_cmake_feature_test_cxx_alias_templates "${Intel121_CXX11}")
+set(_cmake_feature_test_cxx_nullptr "${Intel121_CXX11}")
+set(_cmake_feature_test_cxx_trailing_return_types "${Intel121_CXX11}")
+set(_cmake_feature_test_cxx_attributes "${Intel121_CXX11}")
+set(_cmake_feature_test_cxx_default_function_template_args "${Intel121_CXX11}")
+
+set(Intel12_CXX11 "__INTEL_COMPILER >= 1200 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_extended_friend_declarations "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_rvalue_references "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_decltype "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_defaulted_functions "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_deleted_functions "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_local_type_template_args "${Intel12_CXX11}")
+set(_cmake_feature_test_cxx_lambdas "${Intel12_CXX11}")
+
+set(_cmake_oldestSupported "__INTEL_COMPILER >= 1110 && ${DETECT_CXX11}")
+set(_cmake_feature_test_cxx_binary_literals "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_static_assert "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_right_angle_brackets "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_auto_type "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_extern_templates "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_variadic_macros "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_long_long_type "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_func_identifier "${_cmake_oldestSupported}")
+set(_cmake_feature_test_cxx_template_template_parameters 
"${_cmake_oldestSupported}")
diff --git a/Modules/Compiler/Intel-CXX.cmake b/Modules/Compiler/Intel-CXX.cmake
index 02c636c..2785fd3 100644
--- a/Modules/Compiler/Intel-CXX.cmake
+++ b/Modules/Compiler/Intel-CXX.cmake
@@ -8,5 +8,63 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
 
 set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
 
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
+    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+    # todo: there is no gnu++14 value supported; figure out what to do
+    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++14")
+  elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
+    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+    # todo: there is no gnu++14 value supported; figure out what to do
+    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++1y")
+  endif()
+
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
+    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+  elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
+    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+  endif()
+
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+    set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+    set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+  endif()
+endif()
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+  if (NOT CMAKE_CXX_COMPILER_FORCED)
+    if (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT)
+      message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set 
for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version 
${CMAKE_CXX_COMPILER_VERSION}")
+    else()
+      set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT})
+    endif()
+  elseif (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT)
+    # Compiler id was forced so just guess the default standard level.
+    set(CMAKE_CXX_STANDARD_DEFAULT 98)
+  endif()
+endif()
+
+macro(cmake_record_cxx_compile_features)
+  macro(_get_intel_features std_version list)
+    record_compiler_features(CXX "${std_version}" ${list})
+  endmacro()
+
+  set(_result 0)
+  if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC" AND
+      NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
+      _get_intel_features(${CMAKE_CXX14_STANDARD_COMPILE_OPTION} 
CMAKE_CXX14_COMPILE_FEATURES)
+    endif()
+    if (_result EQUAL 0)
+      _get_intel_features(${CMAKE_CXX11_STANDARD_COMPILE_OPTION} 
CMAKE_CXX11_COMPILE_FEATURES)
+    endif()
+    if (_result EQUAL 0)
+      _get_intel_features(${CMAKE_CXX98_STANDARD_COMPILE_OPTION} 
CMAKE_CXX98_COMPILE_FEATURES)
+    endif()
+  endif()
+endmacro()
+
 set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> 
<INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
 set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> 
<INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/Tests/CompileFeatures/CMakeLists.txt 
b/Tests/CompileFeatures/CMakeLists.txt
index a32138d..e6acee8 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -119,6 +119,55 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
   endif()
 endif()
 
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
+    if (CMAKE_CXX_COMIPLER_VERSION VERSION_EQUAL 15.0)
+      list(REMOVE_ITEM CXX_non_features
+        # The cxx_contextual_conversions feature happens to work
+        # (for *this* testcase) with Intel 13/14/15, but they do not
+        # document support until 16.
+        cxx_contextual_conversions
+        )
+
+    elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0)
+      list(REMOVE_ITEM CXX_non_features
+        cxx_alignof
+
+        # not supposed to work until 15
+        cxx_attribute_deprecated
+
+        # The cxx_contextual_conversions feature happens to work
+        # (for *this* testcase) with Intel 13/14/15, but they do not
+        # document support until 16.
+        cxx_contextual_conversions
+        )
+
+    elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+      list(REMOVE_ITEM CXX_non_features
+        # These features happen to work but aren't documented to
+        # do so until 14.0
+        cxx_constexpr
+        cxx_enum_forward_declarations
+        cxx_sizeof_member
+        cxx_strong_enums
+        cxx_unicode_literals
+
+        # not supposed to work until 15
+        cxx_attribute_deprecated
+        cxx_nonstatic_member_init
+
+        # The cxx_contextual_conversions feature happens to work
+        # (for *this* testcase) with Intel 13/14/15, but they do not
+        # document support until 16.
+        cxx_contextual_conversions
+
+        # This is an undocumented feature; it does not work in future versions
+        cxx_aggregate_default_initializers
+        )
+    endif()
+  endif()
+endif()
+
 set(C_ext c)
 set(C_standard_flag 11)
 set(CXX_ext cpp)
@@ -301,6 +350,29 @@ if (CMAKE_CXX_COMPILE_FEATURES)
       -DEXPECT_FINAL=1
       -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
     )
+  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15)
+      add_definitions(
+        -DEXPECT_OVERRIDE_CONTROL=1
+        -DEXPECT_INHERITING_CONSTRUCTORS=1
+        -DEXPECT_FINAL=1
+        -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
+      )
+    elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14)
+      add_definitions(
+        -DEXPECT_OVERRIDE_CONTROL=1
+        -DEXPECT_INHERITING_CONSTRUCTORS=0
+        -DEXPECT_FINAL=1
+        -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
+      )
+    else()
+      add_definitions(
+        -DEXPECT_OVERRIDE_CONTROL=0
+        -DEXPECT_INHERITING_CONSTRUCTORS=0
+        -DEXPECT_FINAL=0
+        -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
+      )
+    endif()
   endif()
 
   add_executable(CompileFeaturesGenex genex_test.cpp)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e0f17d63bcd6f00f36f7c887ca3043593aa3e4c
commit 8e0f17d63bcd6f00f36f7c887ca3043593aa3e4c
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Fri Apr 15 16:06:41 2016 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Apr 18 15:38:01 2016 -0400

    Features: Detect C default dialect on MSVC-like compilers
    
    These compilers default to C 90 but do not define __STDC__.  While MSVC
    itself has no option to change the dialect, compilers that document
    compatibility with MSVC and define _MSC_VER may (e.g. Intel).

diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in
index c107dfd..95184c9 100644
--- a/Modules/CMakeCCompilerId.c.in
+++ b/Modules/CMakeCCompilerId.c.in
@@ -34,7 +34,11 @@ char const *info_cray = "INFO" ":" 
"compiler_wrapper[CrayPrgEnv]";
 @CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@
 
 #if !defined(__STDC__)
-# define C_DIALECT
+# if defined(_MSC_VER) && !defined(__clang__)
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
 #elif __STDC_VERSION__ >= 201000L
 # define C_DIALECT "11"
 #elif __STDC_VERSION__ >= 199901L

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

Summary of changes:
 Help/manual/cmake-compile-features.7.rst           |    1 +
 Help/release/dev/intel-compiler-features.rst       |    6 ++
 Modules/CMakeCCompilerId.c.in                      |    6 +-
 Modules/Compiler/Intel-C-FeatureTests.cmake        |   25 +++++
 Modules/Compiler/Intel-C.cmake                     |   50 ++++++++++
 Modules/Compiler/Intel-CXX-FeatureTests.cmake      |   96 ++++++++++++++++++++
 Modules/Compiler/Intel-CXX.cmake                   |   58 ++++++++++++
 Modules/WriteCompilerDetectionHeader.cmake         |    5 +-
 Tests/CompileFeatures/CMakeLists.txt               |   82 +++++++++++++++++
 .../WriteCompilerDetectionHeader/CMakeLists.txt    |   10 +-
 10 files changed, 334 insertions(+), 5 deletions(-)
 create mode 100644 Help/release/dev/intel-compiler-features.rst
 create mode 100644 Modules/Compiler/Intel-C-FeatureTests.cmake
 create mode 100644 Modules/Compiler/Intel-CXX-FeatureTests.cmake


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to