summaryrefslogtreecommitdiffstats
path: root/Tests/CompileFeatures
diff options
context:
space:
mode:
authorRobert Maynard <robert.maynard@kitware.com>2015-01-19 20:49:06 (GMT)
committerBrad King <brad.king@kitware.com>2015-01-30 14:57:33 (GMT)
commitd3489bdb0bc58b36f1e5ff2baa0aee8f4daea734 (patch)
treef957e26ba68f2a2f7b38c5b8669954f70c169389 /Tests/CompileFeatures
parent3228fc5049e72e6d7584a6f3cec6055b8a726817 (diff)
downloadCMake-d3489bdb0bc58b36f1e5ff2baa0aee8f4daea734.zip
CMake-d3489bdb0bc58b36f1e5ff2baa0aee8f4daea734.tar.gz
CMake-d3489bdb0bc58b36f1e5ff2baa0aee8f4daea734.tar.bz2
Features: Record for MSVC 2010-2015
Also, in WCDH add MSVC Compatibility for cxx_align{of,as}. Co-Author: Stephen Kelly <steveire@gmail.com> Co-Author: Brad King <brad.king@kitware.com>
Diffstat (limited to 'Tests/CompileFeatures')
-rw-r--r--Tests/CompileFeatures/CMakeLists.txt48
1 files changed, 48 insertions, 0 deletions
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 9ef8049..38c44c8 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -100,6 +100,31 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
)
endif()
+if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
+ list(REMOVE_ITEM CXX_non_features
+ # The cxx_contextual_conversions feature happens to work
+ # (for *this* testcase) with VS 2010 and VS 2012, but
+ # they do not document support until VS 2013.
+ cxx_contextual_conversions
+ )
+ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0)
+ list(REMOVE_ITEM CXX_non_features
+ # The cxx_deleted_functions and cxx_nonstatic_member_init
+ # features happen to work (for *this* testcase) with VS 2013,
+ # but they do not document support until VS 2015.
+ cxx_deleted_functions
+ cxx_nonstatic_member_init
+ )
+ else()
+ list(REMOVE_ITEM CXX_non_features
+ # The cxx_constexpr feature happens to work (for *this* testcase)
+ # with VS 2015, but they document only partial support.
+ cxx_constexpr
+ )
+ endif()
+endif()
+
set(C_ext c)
set(C_standard_flag 11)
set(CXX_ext cpp)
@@ -220,6 +245,29 @@ if (CMAKE_CXX_COMPILE_FEATURES)
-DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
)
endif()
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0)
+ 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 17.0)
+ 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()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
add_definitions(
-DEXPECT_OVERRIDE_CONTROL=1