mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 05:11:15 -06:00
Ninja: Fix escaping of paths with spaces for Swift tooling
If a path inside a project contains spaces, the generated Ninja definitions previously contained superfluous quotes. Fixes: #26404
This commit is contained in:
committed by
Brad King
parent
7e0d3b1ca9
commit
75e4cd8d18
@@ -1289,11 +1289,9 @@ void cmNinjaTargetGenerator::GenerateSwiftOutputFileMap(
|
||||
if (cmValue name = target->GetProperty("Swift_DEPENDENCIES_FILE")) {
|
||||
return *name;
|
||||
}
|
||||
return this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
this->ConvertToNinjaPath(cmStrCat(target->GetSupportDirectory(), '/',
|
||||
config, '/', target->GetName(),
|
||||
".swiftdeps")),
|
||||
cmOutputConverter::SHELL);
|
||||
return this->ConvertToNinjaPath(cmStrCat(target->GetSupportDirectory(),
|
||||
'/', config, '/',
|
||||
target->GetName(), ".swiftdeps"));
|
||||
}();
|
||||
|
||||
std::string mapFilePath =
|
||||
@@ -1311,7 +1309,7 @@ void cmNinjaTargetGenerator::GenerateSwiftOutputFileMap(
|
||||
|
||||
// Add flag
|
||||
this->LocalGenerator->AppendFlags(flags, "-output-file-map");
|
||||
this->LocalGenerator->AppendFlagEscape(
|
||||
this->LocalGenerator->AppendFlags(
|
||||
flags,
|
||||
this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
ConvertToNinjaPath(mapFilePath), cmOutputConverter::SHELL));
|
||||
@@ -2014,7 +2012,10 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
|
||||
std::string const emitModuleFlag = "-emit-module";
|
||||
std::string const modulePathFlag = "-emit-module-path";
|
||||
this->LocalGenerator->AppendFlags(
|
||||
vars["FLAGS"], { emitModuleFlag, modulePathFlag, moduleFilepath });
|
||||
vars["FLAGS"],
|
||||
{ emitModuleFlag, modulePathFlag,
|
||||
this->LocalGenerator->ConvertToOutputFormat(
|
||||
moduleFilepath, cmOutputConverter::SHELL) });
|
||||
objBuild.Outputs.push_back(moduleFilepath);
|
||||
}
|
||||
this->LocalGenerator->AppendFlags(vars["FLAGS"],
|
||||
|
||||
@@ -32,6 +32,8 @@ add_subdirectory(SubC)
|
||||
add_subdirectory(SubD)
|
||||
add_subdirectory(SubE)
|
||||
|
||||
add_subdirectory("Sub Space")
|
||||
|
||||
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)
|
||||
|
||||
add_executable(SwiftOnly main.swift)
|
||||
|
||||
1
Tests/SwiftOnly/Sub Space/CMakeLists.txt
Normal file
1
Tests/SwiftOnly/Sub Space/CMakeLists.txt
Normal file
@@ -0,0 +1 @@
|
||||
add_library(SubSpace SubSpace.swift)
|
||||
1
Tests/SwiftOnly/Sub Space/SubSpace.swift
Normal file
1
Tests/SwiftOnly/Sub Space/SubSpace.swift
Normal file
@@ -0,0 +1 @@
|
||||
public func space() { print("space") }
|
||||
Reference in New Issue
Block a user