mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-11 03:50:43 -05:00
Swift: Ignore WIN32_EXECUTABLE property outside of Windows
Issue: #19877
This commit is contained in:
committed by
Brad King
parent
46bd57d245
commit
c782f140d4
@@ -337,6 +337,12 @@ bool cmGlobalGenerator::CheckTargetsForType() const
|
|||||||
bool failed = false;
|
bool failed = false;
|
||||||
for (const auto& generator : this->LocalGenerators) {
|
for (const auto& generator : this->LocalGenerators) {
|
||||||
for (const auto& target : generator->GetGeneratorTargets()) {
|
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) {
|
if (target->GetType() == cmStateEnums::EXECUTABLE) {
|
||||||
std::vector<std::string> const& configs =
|
std::vector<std::string> const& configs =
|
||||||
target->Makefile->GetGeneratorConfigs(
|
target->Makefile->GetGeneratorConfigs(
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STRE
|
|||||||
add_RunCMake_test(RuntimePath)
|
add_RunCMake_test(RuntimePath)
|
||||||
endif()
|
endif()
|
||||||
add_RunCMake_test(ScriptMode)
|
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(TargetObjects)
|
||||||
add_RunCMake_test(TargetProperties)
|
add_RunCMake_test(TargetProperties)
|
||||||
add_RunCMake_test(ToolchainFile)
|
add_RunCMake_test(ToolchainFile)
|
||||||
|
|||||||
@@ -6,11 +6,14 @@ if(RunCMake_GENERATOR STREQUAL Xcode)
|
|||||||
endif()
|
endif()
|
||||||
elseif(RunCMake_GENERATOR STREQUAL Ninja)
|
elseif(RunCMake_GENERATOR STREQUAL Ninja)
|
||||||
if(CMAKE_Swift_COMPILER)
|
if(CMAKE_Swift_COMPILER)
|
||||||
run_cmake(Win32ExecutableDisallowed)
|
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
run_cmake_with_options(Win32ExecutableDisallowed)
|
||||||
set(RunCMake_TEST_OPTIONS -DCMAKE_SYSTEM_NAME=Darwin)
|
else()
|
||||||
run_cmake(SwiftMultiArch)
|
run_cmake_with_options(Win32ExecutableIgnored)
|
||||||
unset(RunCMake_TEST_OPTIONS)
|
set(RunCMake_TEST_OPTIONS -DCMAKE_SYSTEM_NAME=Darwin)
|
||||||
|
run_cmake(SwiftMultiArch)
|
||||||
|
unset(RunCMake_TEST_OPTIONS)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
elseif(RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
|
elseif(RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
|
||||||
if(CMAKE_Swift_COMPILER)
|
if(CMAKE_Swift_COMPILER)
|
||||||
|
|||||||
4
Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake
Normal file
4
Tests/RunCMake/Swift/Win32ExecutableIgnored.cmake
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
enable_language(Swift)
|
||||||
|
add_executable(E E.swift)
|
||||||
|
set_target_properties(E PROPERTIES
|
||||||
|
WIN32_EXECUTABLE TRUE)
|
||||||
Reference in New Issue
Block a user