Tests: Simplify tests for Visual Studio generators

Since commit 03c31b0395 (Drop Visual Studio 9 2008 generator,
2024-05-06, v3.30.0-rc1~134^2), some tests do not need to be
version-dependent.
This commit is contained in:
Brad King
2024-08-28 14:00:50 -04:00
parent 1ad39a9cf8
commit 810e33f67a
5 changed files with 30 additions and 44 deletions

View File

@@ -2225,7 +2225,7 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(VSMASM VSMASM)
endif()
if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
if(CMAKE_GENERATOR MATCHES "Visual Studio")
if(NOT MSVC60)
ADD_TEST_MACRO(SBCS SBCS)
endif()
@@ -2287,20 +2287,17 @@ if(BUILD_TESTING)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild")
endif()
if(CMAKE_GENERATOR MATCHES "Visual Studio ([0-5]|[6-9][0-9])")
# This is Visual Studio 10 or above, so the default build tool is MSBuild.
add_test(NAME VSProjectInSubdir COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/VSProjectInSubdir"
"${CMake_BINARY_DIR}/Tests/VSProjectInSubdir"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-project VSProjectInSubdir
--build-target test)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir")
endif()
add_test(NAME VSProjectInSubdir COMMAND ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/VSProjectInSubdir"
"${CMake_BINARY_DIR}/Tests/VSProjectInSubdir"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-project VSProjectInSubdir
--build-target test)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir")
endif()
get_filename_component(ntver "[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion;CurrentVersion]" NAME)

View File

@@ -382,21 +382,18 @@ function(run_EnvironmentGenerator)
run_cmake_command(Envgen-bad-help ${CMAKE_COMMAND} --help)
unset(ENV{CMAKE_GENERATOR})
if(RunCMake_GENERATOR MATCHES "Visual Studio.*")
if(RunCMake_GENERATOR MATCHES "Visual Studio")
set(ENV{CMAKE_GENERATOR} "${RunCMake_GENERATOR}")
run_cmake_command(Envgen ${CMAKE_COMMAND} ${source_dir})
# Toolset is available since VS 2010.
if(RunCMake_GENERATOR MATCHES "Visual Studio [1-9][0-9]")
set(ENV{CMAKE_GENERATOR_TOOLSET} "invalid")
# Envvar shouldn't affect existing build tree
run_cmake_command(Envgen-toolset-existing ${CMAKE_COMMAND} -E chdir ..
${CMAKE_COMMAND} --build Envgen-build)
run_cmake_command(Envgen-toolset-invalid ${CMAKE_COMMAND} ${source_dir})
# Command line -G implies -T""
run_cmake_command(Envgen-G-implicit-toolset ${CMAKE_COMMAND} -G "${RunCMake_GENERATOR}" ${source_dir})
run_cmake_command(Envgen-T-toolset ${CMAKE_COMMAND} -T "fromcli" ${source_dir})
unset(ENV{CMAKE_GENERATOR_TOOLSET})
endif()
set(ENV{CMAKE_GENERATOR_TOOLSET} "invalid")
# Envvar shouldn't affect existing build tree
run_cmake_command(Envgen-toolset-existing ${CMAKE_COMMAND} -E chdir ..
${CMAKE_COMMAND} --build Envgen-build)
run_cmake_command(Envgen-toolset-invalid ${CMAKE_COMMAND} ${source_dir})
# Command line -G implies -T""
run_cmake_command(Envgen-G-implicit-toolset ${CMAKE_COMMAND} -G "${RunCMake_GENERATOR}" ${source_dir})
run_cmake_command(Envgen-T-toolset ${CMAKE_COMMAND} -T "fromcli" ${source_dir})
unset(ENV{CMAKE_GENERATOR_TOOLSET})
# Platform can be set only if not in generator name.
if(RunCMake_GENERATOR MATCHES "^Visual Studio [0-9]+ [0-9]+$")
set(ENV{CMAKE_GENERATOR_PLATFORM} "invalid")

View File

@@ -1,6 +1,6 @@
include(RunCMake)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]")
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
run_cmake(VsNormal)
include("${RunCMake_BINARY_DIR}/VsNormal-build/defaults.cmake" OPTIONAL)
message(STATUS "VsNormal: platform='${VsNormal_Platform}' toolset='${VsNormal_Toolset}'")
@@ -9,7 +9,7 @@ endif()
set(RunCMake_GENERATOR_TOOLSET "")
run_cmake(NoToolset)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]")
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
run_cmake(TestToolset)
set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=0.0")
@@ -49,7 +49,7 @@ if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]")
run_cmake(TestToolsetFortranIFX)
set(RunCMake_GENERATOR_TOOLSET "fortran=bad")
run_cmake(BadToolsetFortran)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[24567]")
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64")
run_cmake(TestToolsetHostArchBoth)
set(RunCMake_GENERATOR_TOOLSET ",host=x64")
@@ -119,7 +119,7 @@ set(RunCMake_TEST_OPTIONS -T "Test Toolset" -T "Extra Toolset")
run_cmake(TwoToolsets)
unset(RunCMake_TEST_OPTIONS)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]|Xcode")
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio|Xcode")
set(RunCMake_TEST_OPTIONS -DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/TestToolset-toolchain.cmake)
run_cmake(TestToolsetToolchain)
unset(RunCMake_TEST_OPTIONS)

View File

@@ -53,7 +53,7 @@ elseif(RunCMake_GENERATOR MATCHES "Make")
set(RunCMake-check-file ExcludeFromAll/check-sub.cmake)
set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY ${RunCMake_BINARY_DIR}/ExcludeFromAll-build/ExcludeFromAll)
run_cmake_command(ExcludeFromAll-build-sub "${RunCMake_MAKE_PROGRAM}")
elseif(RunCMake_GENERATOR MATCHES "^Visual Studio [1-9][0-9]")
elseif(RunCMake_GENERATOR MATCHES "Visual Studio")
set(RunCMake-check-file ExcludeFromAll/check-sub.cmake)
run_cmake_command(ExcludeFromAll-build-sub ${CMAKE_COMMAND} --build ExcludeFromAll --config Debug)
elseif(RunCMake_GENERATOR STREQUAL "Xcode")

View File

@@ -1,12 +1,6 @@
cmake_minimum_required (VERSION 3.5)
project(VSExternalInclude)
if(${CMAKE_GENERATOR} MATCHES "Visual Studio 1[0124567]")
set(PROJECT_EXT vcxproj)
else()
set(PROJECT_EXT vcproj)
endif()
# make sure directories exists
set(LIB1_BINARY_DIR ${VSExternalInclude_BINARY_DIR}/Lib1)
make_directory("${LIB1_BINARY_DIR}")
@@ -37,9 +31,9 @@ execute_process(
message("CMAKE Ran with the following output:\n\"${OUT}\"")
include_external_msproject(lib1 ${VSExternalInclude_BINARY_DIR}/Lib1/LIB1.${PROJECT_EXT})
include_external_msproject(lib1 ${VSExternalInclude_BINARY_DIR}/Lib1/LIB1.vcxproj)
# lib2 depends on lib1
include_external_msproject(lib2 ${VSExternalInclude_BINARY_DIR}/Lib2/LIB2.${PROJECT_EXT} lib1)
include_external_msproject(lib2 ${VSExternalInclude_BINARY_DIR}/Lib2/LIB2.vcxproj lib1)
include_directories(${VSExternalInclude_SOURCE_DIR}/Lib2 ${VSExternalInclude_SOURCE_DIR}/Lib1)
@@ -55,9 +49,7 @@ add_dependencies(VSExternalInclude lib2)
# and the sln file can no longer be the only source
# of that depend. So, for VS 10 make the executable
# depend on lib1 and lib2
if(${CMAKE_GENERATOR} MATCHES "Visual Studio 1[0124567]")
add_dependencies(VSExternalInclude lib1)
endif()
add_dependencies(VSExternalInclude lib1)
# Interaction testing between the FOLDER target property and
# INCLUDE_EXTERNAL_MSPROJECT targets: