diff options
author | Brad King <brad.king@kitware.com> | 2023-08-10 15:27:37 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-08-10 15:27:47 (GMT) |
commit | 065474d74c26d58a69771d6744946f1cf2b05d69 (patch) | |
tree | 89439aa19f2b449b937714f44897d78cfc382e4b /Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake | |
parent | d22a1f0ca62d97f97d1e01a2acb0a2a20a336fff (diff) | |
parent | 89b611ab3232cdeb4892458bf9d6c3281a8fda00 (diff) | |
download | CMake-065474d74c26d58a69771d6744946f1cf2b05d69.zip CMake-065474d74c26d58a69771d6744946f1cf2b05d69.tar.gz CMake-065474d74c26d58a69771d6744946f1cf2b05d69.tar.bz2 |
Merge topic 'vs-sdk-selection' into release-3.27
89b611ab32 VS: Select latest Windows SDK even when targeting Windows 8.1 and below
ae97d82e83 VS: Teach CMAKE_GENERATOR_PLATFORM to support Windows 8.1 SDK selection
15ff89654b VS: Teach CMAKE_GENERATOR_PLATFORM to use Windows 10 SDKs for older versions
bba1a23da9 VS: Consolidate Windows SDK major version selection dispatch
209973e510 VS: Do not print empty Windows SDK version when none is selected
ec6dd77053 Tests: Remove redundant condition in RunCMake.GeneratorPlatform test
4776a584ad Help: Add 3.27 release note on VS default SDK selection
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8697
Diffstat (limited to 'Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake')
-rw-r--r-- | Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake | 67 |
1 files changed, 40 insertions, 27 deletions
diff --git a/Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake index 233eb0a..d8965f7 100644 --- a/Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorPlatform/RunCMakeTest.cmake @@ -36,12 +36,16 @@ if("${RunCMake_GENERATOR}" MATCHES "^Visual Studio (1[4567])( 20[0-9][0-9])?$") run_cmake(BadFieldUnknown) set(RunCMake_GENERATOR_PLATFORM "version=") run_cmake(BadVersionEmpty) - set(RunCMake_GENERATOR_PLATFORM "version=1.2.3.4") + set(RunCMake_GENERATOR_PLATFORM "version=10.0.0.0") run_cmake(BadVersionMissing) - set(RunCMake_GENERATOR_PLATFORM "version=8.1") - run_cmake_with_options(BadVersionPlatform -DCMAKE_SYSTEM_VERSION=8.1) + set(RunCMake_GENERATOR_PLATFORM "version=1.2.3.4") + run_cmake(BadVersionUnsupported) - if(NOT RunCMake_GENERATOR MATCHES "^Visual Studio (1[45]) ") + if(RunCMake_GENERATOR MATCHES "^Visual Studio (1[45]) ") + set(RunCMake_GENERATOR_PLATFORM "version=10.0") + run_cmake(BadVersionPre2019) + unset(RunCMake_GENERATOR_PLATFORM) + else() set(expect_version "10.0") set(RunCMake_GENERATOR_PLATFORM "version=${expect_version}") set(RunCMake_TEST_VARIANT_DESCRIPTION "-${expect_version}") @@ -61,6 +65,16 @@ if("${RunCMake_GENERATOR}" MATCHES "^Visual Studio (1[4567])( 20[0-9][0-9])?$") file(GLOB kits RELATIVE "${kitsInclude}" "${kitsInclude}/*/um/windows.h") list(TRANSFORM kits REPLACE "/.*" "") endif() + cmake_host_system_information(RESULT kitsRoot81 + QUERY WINDOWS_REGISTRY "HKLM/SOFTWARE/Microsoft/Windows Kits/Installed Roots" + VALUE "KitsRoot81" + VIEW 64_32 + ERROR_VARIABLE kitsRoot81Error + ) + if(NOT kitsRoot81Error AND EXISTS "${kitsRoot81}/include/um/windows.h") + list(PREPEND kits "8.1") + endif() + if(kits) message(STATUS "Available Kits: ${kits}") if(RunCMake_GENERATOR MATCHES "^Visual Studio 14 ") @@ -83,29 +97,28 @@ if("${RunCMake_GENERATOR}" MATCHES "^Visual Studio (1[4567])( 20[0-9][0-9])?$") message(FATAL_ERROR "Could not find any Windows SDKs to drive test cases.") endif() - if(kits) - foreach(expect_version IN LISTS kits) - set(RunCMake_GENERATOR_PLATFORM "version=${expect_version}") - set(RunCMake_TEST_VARIANT_DESCRIPTION "-${expect_version}") - run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=10.0) - unset(RunCMake_GENERATOR_PLATFORM) - endforeach() - foreach(expect_version IN LISTS kits) - set(RunCMake_TEST_VARIANT_DESCRIPTION "-CMP0149-OLD-${expect_version}") - run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=${expect_version} -DCMAKE_POLICY_DEFAULT_CMP0149=OLD) - endforeach() - if(kits MATCHES "(^|;)([0-9.]+)$") - set(expect_version "${CMAKE_MATCH_2}") - foreach(test_version IN LISTS kits) - set(RunCMake_TEST_VARIANT_DESCRIPTION "-CMP0149-NEW-${test_version}") - run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=${test_version} -DCMAKE_POLICY_DEFAULT_CMP0149=NEW) - endforeach() - endif() - foreach(expect_version IN LISTS kits) - set(RunCMake_TEST_VARIANT_DESCRIPTION "-WindowsSDKVersion-${expect_version}") - set(ENV{WindowsSDKVersion} "${expect_version}\\") - run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_POLICY_DEFAULT_CMP0149=NEW) - unset(ENV{WindowsSDKVersion}) + foreach(expect_version IN LISTS kits) + set(RunCMake_GENERATOR_PLATFORM "version=${expect_version}") + set(RunCMake_TEST_VARIANT_DESCRIPTION "-${expect_version}") + run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=10.0) + unset(RunCMake_GENERATOR_PLATFORM) + endforeach() + foreach(expect_version IN LISTS kits) + set(RunCMake_TEST_VARIANT_DESCRIPTION "-CMP0149-OLD-${expect_version}") + run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=${expect_version} -DCMAKE_POLICY_DEFAULT_CMP0149=OLD) + endforeach() + if(kits MATCHES "(^|;)([0-9.]+)$") + set(expect_version "${CMAKE_MATCH_2}") + foreach(test_version IN LISTS kits) + set(RunCMake_TEST_VARIANT_DESCRIPTION "-CMP0149-NEW-${test_version}") + run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=${test_version} -DCMAKE_POLICY_DEFAULT_CMP0149=NEW) endforeach() endif() + list(REMOVE_ITEM kits 8.1) + foreach(expect_version IN LISTS kits) + set(RunCMake_TEST_VARIANT_DESCRIPTION "-WindowsSDKVersion-${expect_version}") + set(ENV{WindowsSDKVersion} "${expect_version}\\") + run_cmake_with_options(VersionExists -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_POLICY_DEFAULT_CMP0149=NEW) + unset(ENV{WindowsSDKVersion}) + endforeach() endif() |