@@ -185,6 +185,7 @@ def parse_global_args(args):
185
185
args .source_dirs ["swift-argument-parser" ] = os .path .join (args .project_root , ".." , "swift-argument-parser" )
186
186
args .source_dirs ["swift-driver" ] = os .path .join (args .project_root , ".." , "swift-driver" )
187
187
args .source_dirs ["swift-crypto" ] = os .path .join (args .project_root , ".." , "swift-crypto" )
188
+ args .source_dirs ["swift-system" ] = os .path .join (args .project_root , ".." , "swift-system" )
188
189
args .source_root = os .path .join (args .project_root , "Sources" )
189
190
190
191
if platform .system () == 'Darwin' :
@@ -330,13 +331,19 @@ def build(args):
330
331
build_llbuild (args )
331
332
332
333
if args .bootstrap :
333
- # tsc, swift-argument-parser, and yams are depended on by swift-driver, so they must be built first.
334
- build_dependency (args , "tsc" )
334
+ # tsc depends on swift-system so they must be built first.
335
+ build_dependency (args , "swift-system" )
336
+ # swift-driver depends on tsc, swift-argument-parser, and yams so they must be built first.
337
+ tsc_cmake_flags = [
338
+ "-DSwiftSystem_DIR=" + os .path .join (args .build_dirs ["swift-system" ], "cmake/modules" ),
339
+ ]
340
+ build_dependency (args , "tsc" , tsc_cmake_flags )
335
341
build_dependency (args , "swift-argument-parser" , ["-DBUILD_TESTING=NO" , "-DBUILD_EXAMPLES=NO" ])
336
342
build_dependency (args , "yams" , [], [get_foundation_cmake_arg (args )] if args .foundation_build_dir else [])
337
343
338
344
swift_driver_cmake_flags = [
339
345
get_llbuild_cmake_arg (args ),
346
+ "-DSwiftSystem_DIR=" + os .path .join (args .build_dirs ["swift-system" ], "cmake/modules" ),
340
347
"-DTSC_DIR=" + os .path .join (args .build_dirs ["tsc" ], "cmake/modules" ),
341
348
"-DYams_DIR=" + os .path .join (args .build_dirs ["yams" ], "cmake/modules" ),
342
349
"-DArgumentParser_DIR=" + os .path .join (args .build_dirs ["swift-argument-parser" ], "cmake/modules" ),
@@ -560,6 +567,7 @@ def build_swiftpm_with_cmake(args):
560
567
"-DArgumentParser_DIR=" + os .path .join (args .build_dirs ["swift-argument-parser" ], "cmake/modules" ),
561
568
"-DSwiftDriver_DIR=" + os .path .join (args .build_dirs ["swift-driver" ], "cmake/modules" ),
562
569
"-DSwiftCrypto_DIR=" + os .path .join (args .build_dirs ["swift-crypto" ], "cmake/modules" ),
570
+ "-DSwiftSystem_DIR=" + os .path .join (args .build_dirs ["swift-system" ], "cmake/modules" ),
563
571
]
564
572
565
573
if platform .system () == 'Darwin' :
@@ -576,6 +584,7 @@ def build_swiftpm_with_cmake(args):
576
584
add_rpath_for_cmake_build (args , os .path .join (args .build_dirs ["swift-argument-parser" ], "lib" ))
577
585
add_rpath_for_cmake_build (args , os .path .join (args .build_dirs ["swift-driver" ], "lib" ))
578
586
add_rpath_for_cmake_build (args , os .path .join (args .build_dirs ["swift-crypto" ], "lib" ))
587
+ add_rpath_for_cmake_build (args , os .path .join (args .build_dirs ["swift-system" ], "lib" ))
579
588
580
589
def build_swiftpm_with_swiftpm (args , integrated_swift_driver ):
581
590
"""Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -680,6 +689,7 @@ def get_swiftpm_env_cmd(args):
680
689
os .path .join (args .build_dirs ["swift-argument-parser" ], "lib" ),
681
690
os .path .join (args .build_dirs ["swift-driver" ], "lib" ),
682
691
os .path .join (args .build_dirs ["swift-crypto" ], "lib" ),
692
+ os .path .join (args .build_dirs ["swift-system" ], "lib" ),
683
693
] + args .target_info ["paths" ]["runtimeLibraryPaths" ])
684
694
685
695
if platform .system () == 'Darwin' :
0 commit comments