summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CompileFeatures
diff options
context:
space:
mode:
authorRobert Maynard <robert.maynard@kitware.com>2015-01-06 18:19:44 (GMT)
committerBrad King <brad.king@kitware.com>2015-01-11 16:32:36 (GMT)
commitf73718c9b893e1489f904cf30392742cb456c341 (patch)
tree51dc3c45de92f7c56b4bb71c0de7c96866e7827a /Tests/RunCMake/CompileFeatures
parent64c30bdc48d0a3e1da48fdbfeb200740fa5dac43 (diff)
downloadCMake-f73718c9b893e1489f904cf30392742cb456c341.zip
CMake-f73718c9b893e1489f904cf30392742cb456c341.tar.gz
CMake-f73718c9b893e1489f904cf30392742cb456c341.tar.bz2
Features: Enable writing of MSVC compiler feature header.
Notes: VS2015 and above are the only MSVC versions to support cxx_final, so remove usages from the tests, and instead only test for cxx_override. VS2012 and above to conform to cxx_decltype_incomplete_return_types proposal, but without support for auto return types the dcl.type.simple example in the proposal doesn't compile. VS2013 and above to conform to the updated cxx_contextual_conversions proposal, but VS2010 and above pass the test. Compilers such as MSVC have no explicit flags to enable C++11 mode, it just is always on. So only run the link tests with compilers that require a flag to specify the language version.
Diffstat (limited to 'Tests/RunCMake/CompileFeatures')
-rw-r--r--Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake9
1 files changed, 7 insertions, 2 deletions
diff --git a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
index 1892a5c..3b37091 100644
--- a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
@@ -27,8 +27,13 @@ if (NOT CXX_FEATURES)
run_cmake(NoSupportedCxxFeatures)
run_cmake(NoSupportedCxxFeaturesGenex)
else()
- run_cmake(LinkImplementationFeatureCycle)
- run_cmake(LinkImplementationFeatureCycleSolved)
+ # compilers such as MSVC have no explicit flags to enable c++11 mode.
+ # Instead they come with all c++11 features implicitly enabled.
+ # So for those types of compilers this tests is not applicable.
+ if(CMAKE_CXX11_STANDARD_COMPILE_OPTION)
+ run_cmake(LinkImplementationFeatureCycle)
+ run_cmake(LinkImplementationFeatureCycleSolved)
+ endif()
if (";${CXX_FEATURES};" MATCHES ";cxx_final;")
set(RunCMake_TEST_OPTIONS "-DHAVE_FINAL=1")