mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 22:30:13 -06:00
Ninja,Swift: correct response file handling
The response file was being written but not used due to the wrong variable being configured for Swift. Swift does compile+link in a single phase and does not use the `<OBJECTS>` placeholder. Use the `<SWIFT_SOURCES>` placeholder instead for the response file substitution which serves the same purpose.
This commit is contained in:
@@ -18,10 +18,12 @@ if(CMAKE_Swift_COMPILER_ID)
|
||||
endif()
|
||||
|
||||
set(CMAKE_INCLUDE_FLAG_Swift "-I ")
|
||||
|
||||
set(CMAKE_Swift_DEFINE_FLAG -D)
|
||||
set(CMAKE_Swift_COMPILE_OPTIONS_TARGET "-target ")
|
||||
set(CMAKE_Swift_COMPILER_ARG1 -frontend)
|
||||
set(CMAKE_Swift_FRAMEWORK_SEARCH_FLAG "-F ")
|
||||
set(CMAKE_Swift_RESPONSE_FILE_LINK_FLAG @)
|
||||
|
||||
# NOTE(compnerd) use the short form for convenience and ease of search. They
|
||||
# are treated equivalent to their long form names as well as custom Swift
|
||||
|
||||
@@ -321,7 +321,11 @@ void cmNinjaNormalTargetGenerator::WriteLinkRule(bool useResponseFile)
|
||||
rspcontent = "$in_newline";
|
||||
}
|
||||
rspcontent += " $LINK_PATH $LINK_LIBRARIES";
|
||||
vars.Objects = responseFlag.c_str();
|
||||
if (this->TargetLinkLanguage == "Swift") {
|
||||
vars.SwiftSources = responseFlag.c_str();
|
||||
} else {
|
||||
vars.Objects = responseFlag.c_str();
|
||||
}
|
||||
vars.LinkLibraries = "";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user