Browse Source

Merge topic 'swift-win32-property'

c782f140d4 Swift: Ignore WIN32_EXECUTABLE property outside of Windows

Acked-by: Kitware Robot <[email protected]>
Merge-request: !6658
Brad King 4 years ago
parent
commit
0486f9e56e

+ 6 - 0
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(

+ 1 - 1
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)

+ 8 - 5
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)

+ 4 - 0
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)