mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-20 21:28:23 -05: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:
+12
-15
@@ -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)
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user