@@ -166,14 +166,16 @@ def add_test_args(parser):
166166
167167def parse_global_args (args ):
168168 """Parses and cleans arguments necessary for all actions."""
169- args .build_dir = os .path .abspath (args .build_dir )
170- args .project_root = os .path .dirname (os .path .dirname (os .path .abspath (__file__ )))
171- args .tsc_source_dir = os .path .join (args .project_root , ".." , "swift-tools-support-core" )
172- args .yams_source_dir = os .path .join (args .project_root , ".." , "yams" )
169+ args .build_dir = os .path .abspath (args .build_dir )
170+ args .project_root = os .path .dirname (os .path .dirname (os .path .abspath (__file__ )))
171+ args .source_root = os .path .join (args .project_root , "Sources" )
173172 args .swift_argument_parser_source_dir = os .path .join (args .project_root , ".." , "swift-argument-parser" )
174- args .swift_driver_source_dir = os .path .join (args .project_root , ".." , "swift-driver" )
175- args .swift_crypto_source_dir = os .path .join (args .project_root , ".." , "swift-crypto" )
176- args .source_root = os .path .join (args .project_root , "Sources" )
173+ args .swift_collections_source_dir = os .path .join (args .project_root , ".." , "swift-collections" )
174+ args .swift_crypto_source_dir = os .path .join (args .project_root , ".." , "swift-crypto" )
175+ args .swift_driver_source_dir = os .path .join (args .project_root , ".." , "swift-driver" )
176+ args .tsc_source_dir = os .path .join (args .project_root , ".." , "swift-tools-support-core" )
177+ args .yams_source_dir = os .path .join (args .project_root , ".." , "yams" )
178+
177179
178180 if platform .system () == 'Darwin' :
179181 args .sysroot = call_output (["xcrun" , "--sdk" , "macosx" , "--show-sdk-path" ], verbose = args .verbose )
@@ -305,11 +307,12 @@ def build(args):
305307 build_llbuild (args )
306308
307309 if args .bootstrap :
308- build_tsc (args )
309- build_yams (args )
310310 build_swift_argument_parser (args )
311- build_swift_driver (args )
311+ build_swift_collections (args )
312312 build_swift_crypto (args )
313+ build_swift_driver (args )
314+ build_tsc (args )
315+ build_yams (args )
313316
314317 build_swiftpm_with_cmake (args )
315318 build_swiftpm_with_swiftpm (args ,integrated_swift_driver = False )
@@ -502,17 +505,6 @@ def build_llbuild(args):
502505 llbuild_source_dir = get_llbuild_source_path (args )
503506 build_with_cmake (args , flags , llbuild_source_dir , args .llbuild_build_dir )
504507
505- def build_tsc (args ):
506- note ("Building TSC" )
507- args .tsc_build_dir = os .path .join (args .target_dir , "tsc" )
508-
509- cmake_flags = []
510- if platform .system () == 'Darwin' :
511- cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
512- cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
513-
514- build_with_cmake (args , cmake_flags , args .tsc_source_dir , args .tsc_build_dir )
515-
516508def build_swift_argument_parser (args ):
517509 note ("Building swift-argument-parser" )
518510 args .swift_argument_parser_build_dir = os .path .join (args .target_dir , "swift-argument-parser" )
@@ -526,19 +518,27 @@ def build_swift_argument_parser(args):
526518 cmake_flags .append ("-DBUILD_EXAMPLES=NO" )
527519 build_with_cmake (args , cmake_flags , args .swift_argument_parser_source_dir , args .swift_argument_parser_build_dir )
528520
529- def build_yams (args ):
530- note ("Building Yams " )
531- args .yams_build_dir = os .path .join (args .target_dir , "yams " )
521+ def build_swift_collections (args ):
522+ note ("Building swift-collections " )
523+ args .swift_collections_build_dir = os .path .join (args .target_dir , "swift-collections " )
532524
533525 cmake_flags = []
534526 if platform .system () == 'Darwin' :
535527 cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
536528 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
537- else :
538- if args .foundation_build_dir :
539- cmake_flags .append (get_foundation_cmake_arg (args ))
529+
530+ build_with_cmake (args , cmake_flags , args .swift_collections_source_dir , args .swift_collections_build_dir )
540531
541- build_with_cmake (args , cmake_flags , args .yams_source_dir , args .yams_build_dir )
532+ def build_swift_crypto (args ):
533+ note ("Building SwiftCrypto" )
534+ args .swift_crypto_build_dir = os .path .join (args .target_dir , "swift-crypto" )
535+
536+ cmake_flags = []
537+ if platform .system () == 'Darwin' :
538+ cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
539+ cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
540+
541+ build_with_cmake (args , cmake_flags , args .swift_crypto_source_dir , args .swift_crypto_build_dir )
542542
543543def build_swift_driver (args ):
544544 note ("Building SwiftDriver" )
@@ -555,17 +555,31 @@ def build_swift_driver(args):
555555 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
556556
557557 build_with_cmake (args , cmake_flags , args .swift_driver_source_dir , args .swift_driver_build_dir )
558-
559- def build_swift_crypto (args ):
560- note ("Building SwiftCrypto " )
561- args .swift_crypto_build_dir = os .path .join (args .target_dir , "swift-crypto " )
558+
559+ def build_tsc (args ):
560+ note ("Building TSC " )
561+ args .tsc_build_dir = os .path .join (args .target_dir , "tsc " )
562562
563563 cmake_flags = []
564564 if platform .system () == 'Darwin' :
565565 cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
566566 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
567567
568- build_with_cmake (args , cmake_flags , args .swift_crypto_source_dir , args .swift_crypto_build_dir )
568+ build_with_cmake (args , cmake_flags , args .tsc_source_dir , args .tsc_build_dir )
569+
570+ def build_yams (args ):
571+ note ("Building Yams" )
572+ args .yams_build_dir = os .path .join (args .target_dir , "yams" )
573+
574+ cmake_flags = []
575+ if platform .system () == 'Darwin' :
576+ cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
577+ cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
578+ else :
579+ if args .foundation_build_dir :
580+ cmake_flags .append (get_foundation_cmake_arg (args ))
581+
582+ build_with_cmake (args , cmake_flags , args .yams_source_dir , args .yams_build_dir )
569583
570584def add_rpath_for_cmake_build (args , rpath ):
571585 "Adds the given rpath to the CMake-built swift-build"
@@ -581,11 +595,12 @@ def build_swiftpm_with_cmake(args):
581595 if args .bootstrap :
582596 cmake_flags = [
583597 get_llbuild_cmake_arg (args ),
584- "-DTSC_DIR=" + os .path .join (args .tsc_build_dir , "cmake/modules" ),
585- "-DYams_DIR=" + os .path .join (args .yams_build_dir , "cmake/modules" ),
586- "-DArgumentParser_DIR=" + os .path .join (args .swift_argument_parser_build_dir , "cmake/modules" ),
587- "-DSwiftDriver_DIR=" + os .path .join (args .swift_driver_build_dir , "cmake/modules" ),
588- "-DSwiftCrypto_DIR=" + os .path .join (args .swift_crypto_build_dir , "cmake/modules" ),
598+ "-DArgumentParser_DIR=" + os .path .join (args .swift_argument_parser_build_dir , "cmake/modules" ),
599+ "-DSwiftCollections_DIR=" + os .path .join (args .swift_collections_build_dir , "cmake/modules" ),
600+ "-DSwiftCrypto_DIR=" + os .path .join (args .swift_crypto_build_dir , "cmake/modules" ),
601+ "-DSwiftDriver_DIR=" + os .path .join (args .swift_driver_build_dir , "cmake/modules" ),
602+ "-DYams_DIR=" + os .path .join (args .yams_build_dir , "cmake/modules" ),
603+ "-DTSC_DIR=" + os .path .join (args .tsc_build_dir , "cmake/modules" ),
589604 "-DFIND_PM_DEPS:BOOL=YES" ,
590605 ]
591606 else :
@@ -603,10 +618,11 @@ def build_swiftpm_with_cmake(args):
603618 add_rpath_for_cmake_build (args , args .llbuild_build_dir )
604619
605620 if platform .system () == "Darwin" :
606- add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
607621 add_rpath_for_cmake_build (args , os .path .join (args .swift_argument_parser_build_dir , "lib" ))
608- add_rpath_for_cmake_build (args , os .path .join (args .swift_driver_build_dir , "lib" ))
609- add_rpath_for_cmake_build (args , os .path .join (args .swift_crypto_build_dir , "lib" ))
622+ add_rpath_for_cmake_build (args , os .path .join (args .swift_collections_build_dir , "lib" ))
623+ add_rpath_for_cmake_build (args , os .path .join (args .swift_crypto_build_dir , "lib" ))
624+ add_rpath_for_cmake_build (args , os .path .join (args .swift_driver_build_dir , "lib" ))
625+ add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
610626
611627def build_swiftpm_with_swiftpm (args , integrated_swift_driver ):
612628 """Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -699,12 +715,13 @@ def get_swiftpm_env_cmd(args):
699715 if args .bootstrap :
700716 libs_joined = ":" .join ([
701717 os .path .join (args .bootstrap_dir , "lib" ),
702- os .path .join (args .tsc_build_dir , "lib" ),
703718 os .path .join (args .llbuild_build_dir , "lib" ),
704- os .path .join (args .yams_build_dir , "lib" ),
705719 os .path .join (args .swift_argument_parser_build_dir , "lib" ),
706- os .path .join (args .swift_driver_build_dir , "lib" ),
720+ os .path .join (args .swift_collections_build_dir , "lib" ),
707721 os .path .join (args .swift_crypto_build_dir , "lib" ),
722+ os .path .join (args .swift_driver_build_dir , "lib" ),
723+ os .path .join (args .tsc_build_dir , "lib" ),
724+ os .path .join (args .yams_build_dir , "lib" ),
708725 ] + args .target_info ["paths" ]["runtimeLibraryPaths" ])
709726
710727 if platform .system () == 'Darwin' :
0 commit comments