@@ -14,6 +14,7 @@ import Foundation
1414import TSCUtility
1515
1616import struct Basics. AbsolutePath
17+ import struct Basics. RelativePath
1718import class Basics. ObservabilitySystem
1819import func Basics. resolveSymlinks
1920import struct Basics. SourceControlURL
@@ -352,8 +353,8 @@ extension PackagePIFProjectBuilder {
352353
353354 // Generate a module map file, if needed.
354355 var moduleMapFileContents = " "
355- var moduleMapFile = " "
356356 let generatedModuleMapDir = " $(GENERATED_MODULEMAP_DIR) "
357+ let moduleMapFile = try RelativePath ( validating: " \( generatedModuleMapDir) / \( sourceModule. name) .modulemap " ) . pathString
357358
358359 if sourceModule. usesSwift && desiredModuleType != . macro {
359360 // Generate ObjC compatibility header for Swift library targets.
@@ -366,8 +367,6 @@ extension PackagePIFProjectBuilder {
366367 export *
367368 }
368369 """
369- moduleMapFile = " \( generatedModuleMapDir) / \( sourceModule. name) .modulemap "
370-
371370 // We only need to impart this to C clients.
372371 impartedSettings [ . OTHER_CFLAGS] = [ " -fmodule-map-file= \( moduleMapFile) " , " $(inherited) " ]
373372 } else if sourceModule. moduleMapFileRelativePath ( fileSystem: self . pifBuilder. fileSystem) == nil {
@@ -376,22 +375,21 @@ extension PackagePIFProjectBuilder {
376375 log ( . debug, " \( package . name) . \( sourceModule. name) generated umbrella header " )
377376 moduleMapFileContents = """
378377 module \( sourceModule. c99name) {
379- umbrella header " \( path) "
378+ umbrella header " \( path. escapedPathString ) "
380379 export *
381380 }
382381 """
383382 } else if case . umbrellaDirectory( let path) = sourceModule. moduleMapType {
384383 log ( . debug, " \( package . name) . \( sourceModule. name) generated umbrella directory " )
385384 moduleMapFileContents = """
386385 module \( sourceModule. c99name) {
387- umbrella " \( path) "
386+ umbrella " \( path. escapedPathString ) "
388387 export *
389388 }
390389 """
391390 }
392391 if moduleMapFileContents. hasContent {
393392 // Pass the path of the module map up to all direct and indirect clients.
394- moduleMapFile = " \( generatedModuleMapDir) / \( sourceModule. name) .modulemap "
395393 impartedSettings [ . OTHER_CFLAGS] = [ " -fmodule-map-file= \( moduleMapFile) " , " $(inherited) " ]
396394 impartedSettings [ . OTHER_SWIFT_FLAGS] = [ " -Xcc " , " -fmodule-map-file= \( moduleMapFile) " , " $(inherited) " ]
397395 }
0 commit comments