diff options
author | Brad King <brad.king@kitware.com> | 2021-10-29 12:53:13 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2021-10-29 12:53:26 (GMT) |
commit | 0486f9e56eff776f1960880b1a825c208090466d (patch) | |
tree | 532c64c8249cd97e137d026137d185e6bef7e4c4 | |
parent | 71833ee6b5f2c17627264b50f3a09a1cdab1f7b9 (diff) | |
parent | c782f140d4dbbffec03d834e0f1b3cf5a7acb004 (diff) | |
download | CMake-0486f9e56eff776f1960880b1a825c208090466d.zip CMake-0486f9e56eff776f1960880b1a825c208090466d.tar.gz CMake-0486f9e56eff776f1960880b1a825c208090466d.tar.bz2 |
Merge topic 'swift-win32-property'
c782f140d4 Swift: Ignore WIN32_EXECUTABLE property outside of Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6658
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 6 | ||||
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/RunCMakeTest.cmake | 13 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake | 4 |
4 files changed, 19 insertions, 6 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 25bdb31..38034d4 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -337,6 +337,12 @@ bool cmGlobalGenerator::CheckTargetsForType() const bool failed = false; for (const auto& generator : this->LocalGenerators) { for (const auto& target : generator->GetGeneratorTargets()) { + std::string systemName = + target->Makefile->GetSafeDefinition("CMAKE_SYSTEM_NAME"); + if (systemName.find("Windows") == std::string::npos) { + continue; + } + if (target->GetType() == cmStateEnums::EXECUTABLE) { std::vector<std::string> const& configs = target->Makefile->GetGeneratorConfigs( diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 0c1258e..5dc7031 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -345,7 +345,7 @@ if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STRE add_RunCMake_test(RuntimePath) endif() add_RunCMake_test(ScriptMode) -add_RunCMake_test(Swift -DCMAKE_Swift_COMPILER=${CMAKE_Swift_COMPILER}) +add_RunCMake_test(Swift -DCMAKE_Swift_COMPILER=${CMAKE_Swift_COMPILER} -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}) add_RunCMake_test(TargetObjects) add_RunCMake_test(TargetProperties) add_RunCMake_test(ToolchainFile) diff --git a/Tests/RunCMake/Swift/RunCMakeTest.cmake b/Tests/RunCMake/Swift/RunCMakeTest.cmake index 1db202e..21d5a25 100644 --- a/Tests/RunCMake/Swift/RunCMakeTest.cmake +++ b/Tests/RunCMake/Swift/RunCMakeTest.cmake @@ -6,11 +6,14 @@ if(RunCMake_GENERATOR STREQUAL Xcode) endif() elseif(RunCMake_GENERATOR STREQUAL Ninja) if(CMAKE_Swift_COMPILER) - run_cmake(Win32ExecutableDisallowed) - - set(RunCMake_TEST_OPTIONS -DCMAKE_SYSTEM_NAME=Darwin) - run_cmake(SwiftMultiArch) - unset(RunCMake_TEST_OPTIONS) + if (CMAKE_SYSTEM_NAME MATCHES "Windows") + run_cmake_with_options(Win32ExecutableDisallowed) + else() + run_cmake_with_options(Win32ExecutableIgnored) + set(RunCMake_TEST_OPTIONS -DCMAKE_SYSTEM_NAME=Darwin) + run_cmake(SwiftMultiArch) + unset(RunCMake_TEST_OPTIONS) + endif() endif() elseif(RunCMake_GENERATOR STREQUAL "Ninja Multi-Config") if(CMAKE_Swift_COMPILER) diff --git a/Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake b/Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake new file mode 100644 index 0000000..02d5447 --- /dev/null +++ b/Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake @@ -0,0 +1,4 @@ +enable_language(Swift) +add_executable(E E.swift) +set_target_properties(E PROPERTIES + WIN32_EXECUTABLE TRUE) |