diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CompileFeatures/CMakeLists.txt | 23 | ||||
-rw-r--r-- | Tests/CompileFeatures/genex_test.cpp | 2 | ||||
-rw-r--r-- | Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt | 16 | ||||
-rw-r--r-- | Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake | 9 |
4 files changed, 5 insertions, 45 deletions
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt index 9fb8d1b..b164f06 100644 --- a/Tests/CompileFeatures/CMakeLists.txt +++ b/Tests/CompileFeatures/CMakeLists.txt @@ -26,18 +26,7 @@ get_property(c_features GLOBAL PROPERTY CMAKE_C_KNOWN_FEATURES) foreach(feature ${c_features}) run_test(${feature} C) endforeach() - get_property(cxx_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - list(REMOVE_ITEM cxx_features - # This test requires auto return type deduction to work properly, but - # that is not supported by all versions of MSVC that support decltype - # incomplete return types. - cxx_decltype_incomplete_return_types - ) -endif() - foreach(feature ${cxx_features}) run_test(${feature} CXX) endforeach() @@ -64,17 +53,6 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) endif() -set(MSVC_) -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND - MSVC_VERSION LESS 1800) - list(REMOVE_ITEM CXX_non_features - # Microsoft only officially supports this feature in VS2013 and above, due - # to new wording of the proposal. We don't test for this with MSVC because - # older compiler pass the test but might not actually conform - cxx_contextual_conversions - ) -endif() - set(C_ext c) set(C_standard_flag 11) set(CXX_ext cpp) @@ -148,7 +126,6 @@ if (CMAKE_CXX_COMPILE_FEATURES) add_executable(CompileFeaturesGenex genex_test.cpp) set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11) - target_compile_definitions(CompileFeaturesGenex PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override> HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr> diff --git a/Tests/CompileFeatures/genex_test.cpp b/Tests/CompileFeatures/genex_test.cpp index 4412569..f667cc4 100644 --- a/Tests/CompileFeatures/genex_test.cpp +++ b/Tests/CompileFeatures/genex_test.cpp @@ -10,7 +10,7 @@ struct A virtual int getA() { return 7; } }; -struct B : A +struct B final : A { int getA() override { return 42; } }; diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt index cfaa78c..401de95 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 + COMPILERS GNU Clang AppleClang VERSION 3.1 PROLOG "// something" EPILOG "// more" @@ -64,18 +64,6 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES) endif() -# for msvc the compiler version determines which c++11 features are available. -# Both variadic templates and delegating constructors support exist in -# all versions that we write compile headers for. -if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND - ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_delegating_constructors;") - list(APPEND true_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS) - list(APPEND true_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES) -else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS) - list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES) -endif() - if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang") @@ -93,7 +81,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 + COMPILERS GNU Clang AppleClang VERSION 3.1 FEATURES ${cxx_known_features} ${c_known_features} diff --git a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake index 3b37091..1892a5c 100644 --- a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake +++ b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake @@ -27,13 +27,8 @@ if (NOT CXX_FEATURES) run_cmake(NoSupportedCxxFeatures) run_cmake(NoSupportedCxxFeaturesGenex) else() - # 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() + run_cmake(LinkImplementationFeatureCycle) + run_cmake(LinkImplementationFeatureCycleSolved) if (";${CXX_FEATURES};" MATCHES ";cxx_final;") set(RunCMake_TEST_OPTIONS "-DHAVE_FINAL=1") |