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
+12 -15
View File
@@ -2225,7 +2225,7 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(VSMASM VSMASM) ADD_TEST_MACRO(VSMASM VSMASM)
endif() endif()
if(${CMAKE_GENERATOR} MATCHES "Visual Studio") if(CMAKE_GENERATOR MATCHES "Visual Studio")
if(NOT MSVC60) if(NOT MSVC60)
ADD_TEST_MACRO(SBCS SBCS) ADD_TEST_MACRO(SBCS SBCS)
endif() endif()
@@ -2287,20 +2287,17 @@ if(BUILD_TESTING)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild") list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExcludeFromDefaultBuild")
endif() endif()
if(CMAKE_GENERATOR MATCHES "Visual Studio ([0-5]|[6-9][0-9])") add_test(NAME VSProjectInSubdir COMMAND ${CMAKE_CTEST_COMMAND}
# This is Visual Studio 10 or above, so the default build tool is MSBuild. --build-and-test
add_test(NAME VSProjectInSubdir COMMAND ${CMAKE_CTEST_COMMAND} "${CMake_SOURCE_DIR}/Tests/VSProjectInSubdir"
--build-and-test "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir"
"${CMake_SOURCE_DIR}/Tests/VSProjectInSubdir" --build-two-config
"${CMake_BINARY_DIR}/Tests/VSProjectInSubdir" --build-generator ${CMAKE_GENERATOR}
--build-two-config --build-generator-platform "${CMAKE_GENERATOR_PLATFORM}"
--build-generator ${CMAKE_GENERATOR} --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
--build-generator-platform "${CMAKE_GENERATOR_PLATFORM}" --build-project VSProjectInSubdir
--build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}" --build-target test)
--build-project VSProjectInSubdir list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir")
--build-target test)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSProjectInSubdir")
endif()
endif() endif()
get_filename_component(ntver "[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion;CurrentVersion]" NAME) get_filename_component(ntver "[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion;CurrentVersion]" NAME)
+10 -13
View File
@@ -382,21 +382,18 @@ function(run_EnvironmentGenerator)
run_cmake_command(Envgen-bad-help ${CMAKE_COMMAND} --help) run_cmake_command(Envgen-bad-help ${CMAKE_COMMAND} --help)
unset(ENV{CMAKE_GENERATOR}) unset(ENV{CMAKE_GENERATOR})
if(RunCMake_GENERATOR MATCHES "Visual Studio.*") if(RunCMake_GENERATOR MATCHES "Visual Studio")
set(ENV{CMAKE_GENERATOR} "${RunCMake_GENERATOR}") set(ENV{CMAKE_GENERATOR} "${RunCMake_GENERATOR}")
run_cmake_command(Envgen ${CMAKE_COMMAND} ${source_dir}) run_cmake_command(Envgen ${CMAKE_COMMAND} ${source_dir})
# Toolset is available since VS 2010. set(ENV{CMAKE_GENERATOR_TOOLSET} "invalid")
if(RunCMake_GENERATOR MATCHES "Visual Studio [1-9][0-9]") # Envvar shouldn't affect existing build tree
set(ENV{CMAKE_GENERATOR_TOOLSET} "invalid") run_cmake_command(Envgen-toolset-existing ${CMAKE_COMMAND} -E chdir ..
# Envvar shouldn't affect existing build tree ${CMAKE_COMMAND} --build Envgen-build)
run_cmake_command(Envgen-toolset-existing ${CMAKE_COMMAND} -E chdir .. run_cmake_command(Envgen-toolset-invalid ${CMAKE_COMMAND} ${source_dir})
${CMAKE_COMMAND} --build Envgen-build) # Command line -G implies -T""
run_cmake_command(Envgen-toolset-invalid ${CMAKE_COMMAND} ${source_dir}) run_cmake_command(Envgen-G-implicit-toolset ${CMAKE_COMMAND} -G "${RunCMake_GENERATOR}" ${source_dir})
# Command line -G implies -T"" run_cmake_command(Envgen-T-toolset ${CMAKE_COMMAND} -T "fromcli" ${source_dir})
run_cmake_command(Envgen-G-implicit-toolset ${CMAKE_COMMAND} -G "${RunCMake_GENERATOR}" ${source_dir}) unset(ENV{CMAKE_GENERATOR_TOOLSET})
run_cmake_command(Envgen-T-toolset ${CMAKE_COMMAND} -T "fromcli" ${source_dir})
unset(ENV{CMAKE_GENERATOR_TOOLSET})
endif()
# Platform can be set only if not in generator name. # Platform can be set only if not in generator name.
if(RunCMake_GENERATOR MATCHES "^Visual Studio [0-9]+ [0-9]+$") if(RunCMake_GENERATOR MATCHES "^Visual Studio [0-9]+ [0-9]+$")
set(ENV{CMAKE_GENERATOR_PLATFORM} "invalid") set(ENV{CMAKE_GENERATOR_PLATFORM} "invalid")
@@ -1,6 +1,6 @@
include(RunCMake) include(RunCMake)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]") if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
run_cmake(VsNormal) run_cmake(VsNormal)
include("${RunCMake_BINARY_DIR}/VsNormal-build/defaults.cmake" OPTIONAL) include("${RunCMake_BINARY_DIR}/VsNormal-build/defaults.cmake" OPTIONAL)
message(STATUS "VsNormal: platform='${VsNormal_Platform}' toolset='${VsNormal_Toolset}'") message(STATUS "VsNormal: platform='${VsNormal_Platform}' toolset='${VsNormal_Toolset}'")
@@ -9,7 +9,7 @@ endif()
set(RunCMake_GENERATOR_TOOLSET "") set(RunCMake_GENERATOR_TOOLSET "")
run_cmake(NoToolset) run_cmake(NoToolset)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]") if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
set(RunCMake_GENERATOR_TOOLSET "Test Toolset") set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
run_cmake(TestToolset) run_cmake(TestToolset)
set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=0.0") set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=0.0")
@@ -49,7 +49,7 @@ if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[0124567]")
run_cmake(TestToolsetFortranIFX) run_cmake(TestToolsetFortranIFX)
set(RunCMake_GENERATOR_TOOLSET "fortran=bad") set(RunCMake_GENERATOR_TOOLSET "fortran=bad")
run_cmake(BadToolsetFortran) 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") set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64")
run_cmake(TestToolsetHostArchBoth) run_cmake(TestToolsetHostArchBoth)
set(RunCMake_GENERATOR_TOOLSET ",host=x64") set(RunCMake_GENERATOR_TOOLSET ",host=x64")
@@ -119,7 +119,7 @@ set(RunCMake_TEST_OPTIONS -T "Test Toolset" -T "Extra Toolset")
run_cmake(TwoToolsets) run_cmake(TwoToolsets)
unset(RunCMake_TEST_OPTIONS) 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) set(RunCMake_TEST_OPTIONS -DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/TestToolset-toolchain.cmake)
run_cmake(TestToolsetToolchain) run_cmake(TestToolsetToolchain)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
@@ -53,7 +53,7 @@ elseif(RunCMake_GENERATOR MATCHES "Make")
set(RunCMake-check-file ExcludeFromAll/check-sub.cmake) set(RunCMake-check-file ExcludeFromAll/check-sub.cmake)
set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY ${RunCMake_BINARY_DIR}/ExcludeFromAll-build/ExcludeFromAll) set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY ${RunCMake_BINARY_DIR}/ExcludeFromAll-build/ExcludeFromAll)
run_cmake_command(ExcludeFromAll-build-sub "${RunCMake_MAKE_PROGRAM}") 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) set(RunCMake-check-file ExcludeFromAll/check-sub.cmake)
run_cmake_command(ExcludeFromAll-build-sub ${CMAKE_COMMAND} --build ExcludeFromAll --config Debug) run_cmake_command(ExcludeFromAll-build-sub ${CMAKE_COMMAND} --build ExcludeFromAll --config Debug)
elseif(RunCMake_GENERATOR STREQUAL "Xcode") elseif(RunCMake_GENERATOR STREQUAL "Xcode")
+3 -11
View File
@@ -1,12 +1,6 @@
cmake_minimum_required (VERSION 3.5) cmake_minimum_required (VERSION 3.5)
project(VSExternalInclude) project(VSExternalInclude)
if(${CMAKE_GENERATOR} MATCHES "Visual Studio 1[0124567]")
set(PROJECT_EXT vcxproj)
else()
set(PROJECT_EXT vcproj)
endif()
# make sure directories exists # make sure directories exists
set(LIB1_BINARY_DIR ${VSExternalInclude_BINARY_DIR}/Lib1) set(LIB1_BINARY_DIR ${VSExternalInclude_BINARY_DIR}/Lib1)
make_directory("${LIB1_BINARY_DIR}") make_directory("${LIB1_BINARY_DIR}")
@@ -37,9 +31,9 @@ execute_process(
message("CMAKE Ran with the following output:\n\"${OUT}\"") 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 # 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) 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 # and the sln file can no longer be the only source
# of that depend. So, for VS 10 make the executable # of that depend. So, for VS 10 make the executable
# depend on lib1 and lib2 # depend on lib1 and lib2
if(${CMAKE_GENERATOR} MATCHES "Visual Studio 1[0124567]") add_dependencies(VSExternalInclude lib1)
add_dependencies(VSExternalInclude lib1)
endif()
# Interaction testing between the FOLDER target property and # Interaction testing between the FOLDER target property and
# INCLUDE_EXTERNAL_MSPROJECT targets: # INCLUDE_EXTERNAL_MSPROJECT targets: