mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
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:
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user