diff options
author | Robert Maynard <robert.maynard@kitware.com> | 2015-01-06 18:19:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-01-11 16:32:36 (GMT) |
commit | f73718c9b893e1489f904cf30392742cb456c341 (patch) | |
tree | 51dc3c45de92f7c56b4bb71c0de7c96866e7827a /Tests/RunCMake/CompileFeatures | |
parent | 64c30bdc48d0a3e1da48fdbfeb200740fa5dac43 (diff) | |
download | CMake-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.cmake | 9 |
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") |