@@ -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 )
@@ -531,17 +534,6 @@ def build_llbuild(args):
531534 llbuild_source_dir = get_llbuild_source_path (args )
532535 build_with_cmake (args , flags , llbuild_source_dir , args .llbuild_build_dir )
533536
534- def build_tsc (args ):
535- note ("Building TSC" )
536- args .tsc_build_dir = os .path .join (args .target_dir , "tsc" )
537-
538- cmake_flags = []
539- if platform .system () == 'Darwin' :
540- cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
541- cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
542-
543- build_with_cmake (args , cmake_flags , args .tsc_source_dir , args .tsc_build_dir )
544-
545537def build_swift_argument_parser (args ):
546538 note ("Building swift-argument-parser" )
547539 args .swift_argument_parser_build_dir = os .path .join (args .target_dir , "swift-argument-parser" )
@@ -555,19 +547,27 @@ def build_swift_argument_parser(args):
555547 cmake_flags .append ("-DBUILD_EXAMPLES=NO" )
556548 build_with_cmake (args , cmake_flags , args .swift_argument_parser_source_dir , args .swift_argument_parser_build_dir )
557549
558- def build_yams (args ):
559- note ("Building Yams " )
560- args .yams_build_dir = os .path .join (args .target_dir , "yams " )
550+ def build_swift_collections (args ):
551+ note ("Building swift-collections " )
552+ args .swift_collections_build_dir = os .path .join (args .target_dir , "swift-collections " )
561553
562554 cmake_flags = []
563555 if platform .system () == 'Darwin' :
564556 cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
565557 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
566- else :
567- if args .foundation_build_dir :
568- cmake_flags .append (get_foundation_cmake_arg (args ))
558+
559+ build_with_cmake (args , cmake_flags , args .swift_collections_source_dir , args .swift_collections_build_dir )
569560
570- build_with_cmake (args , cmake_flags , args .yams_source_dir , args .yams_build_dir )
561+ def build_swift_crypto (args ):
562+ note ("Building SwiftCrypto" )
563+ args .swift_crypto_build_dir = os .path .join (args .target_dir , "swift-crypto" )
564+
565+ cmake_flags = []
566+ if platform .system () == 'Darwin' :
567+ cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
568+ cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
569+
570+ build_with_cmake (args , cmake_flags , args .swift_crypto_source_dir , args .swift_crypto_build_dir )
571571
572572def build_swift_driver (args ):
573573 note ("Building SwiftDriver" )
@@ -584,17 +584,31 @@ def build_swift_driver(args):
584584 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
585585
586586 build_with_cmake (args , cmake_flags , args .swift_driver_source_dir , args .swift_driver_build_dir )
587-
588- def build_swift_crypto (args ):
589- note ("Building SwiftCrypto " )
590- args .swift_crypto_build_dir = os .path .join (args .target_dir , "swift-crypto " )
587+
588+ def build_tsc (args ):
589+ note ("Building TSC " )
590+ args .tsc_build_dir = os .path .join (args .target_dir , "tsc " )
591591
592592 cmake_flags = []
593593 if platform .system () == 'Darwin' :
594594 cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
595595 cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
596596
597- build_with_cmake (args , cmake_flags , args .swift_crypto_source_dir , args .swift_crypto_build_dir )
597+ build_with_cmake (args , cmake_flags , args .tsc_source_dir , args .tsc_build_dir )
598+
599+ def build_yams (args ):
600+ note ("Building Yams" )
601+ args .yams_build_dir = os .path .join (args .target_dir , "yams" )
602+
603+ cmake_flags = []
604+ if platform .system () == 'Darwin' :
605+ cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
606+ cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
607+ else :
608+ if args .foundation_build_dir :
609+ cmake_flags .append (get_foundation_cmake_arg (args ))
610+
611+ build_with_cmake (args , cmake_flags , args .yams_source_dir , args .yams_build_dir )
598612
599613def add_rpath_for_cmake_build (args , rpath ):
600614 "Adds the given rpath to the CMake-built swift-build"
@@ -610,11 +624,12 @@ def build_swiftpm_with_cmake(args):
610624 if args .bootstrap :
611625 cmake_flags = [
612626 get_llbuild_cmake_arg (args ),
613- "-DTSC_DIR=" + os .path .join (args .tsc_build_dir , "cmake/modules" ),
614- "-DYams_DIR=" + os .path .join (args .yams_build_dir , "cmake/modules" ),
615- "-DArgumentParser_DIR=" + os .path .join (args .swift_argument_parser_build_dir , "cmake/modules" ),
616- "-DSwiftDriver_DIR=" + os .path .join (args .swift_driver_build_dir , "cmake/modules" ),
617- "-DSwiftCrypto_DIR=" + os .path .join (args .swift_crypto_build_dir , "cmake/modules" ),
627+ "-DArgumentParser_DIR=" + os .path .join (args .swift_argument_parser_build_dir , "cmake/modules" ),
628+ "-DSwiftCollections_DIR=" + os .path .join (args .swift_collections_build_dir , "cmake/modules" ),
629+ "-DSwiftCrypto_DIR=" + os .path .join (args .swift_crypto_build_dir , "cmake/modules" ),
630+ "-DSwiftDriver_DIR=" + os .path .join (args .swift_driver_build_dir , "cmake/modules" ),
631+ "-DYams_DIR=" + os .path .join (args .yams_build_dir , "cmake/modules" ),
632+ "-DTSC_DIR=" + os .path .join (args .tsc_build_dir , "cmake/modules" ),
618633 "-DFIND_PM_DEPS:BOOL=YES" ,
619634 ]
620635 else :
@@ -632,10 +647,11 @@ def build_swiftpm_with_cmake(args):
632647 add_rpath_for_cmake_build (args , args .llbuild_build_dir )
633648
634649 if platform .system () == "Darwin" :
635- add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
636650 add_rpath_for_cmake_build (args , os .path .join (args .swift_argument_parser_build_dir , "lib" ))
637- add_rpath_for_cmake_build (args , os .path .join (args .swift_driver_build_dir , "lib" ))
638- add_rpath_for_cmake_build (args , os .path .join (args .swift_crypto_build_dir , "lib" ))
651+ add_rpath_for_cmake_build (args , os .path .join (args .swift_collections_build_dir , "lib" ))
652+ add_rpath_for_cmake_build (args , os .path .join (args .swift_crypto_build_dir , "lib" ))
653+ add_rpath_for_cmake_build (args , os .path .join (args .swift_driver_build_dir , "lib" ))
654+ add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
639655
640656def build_swiftpm_with_swiftpm (args , integrated_swift_driver ):
641657 """Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -728,12 +744,13 @@ def get_swiftpm_env_cmd(args):
728744 if args .bootstrap :
729745 libs_joined = ":" .join ([
730746 os .path .join (args .bootstrap_dir , "lib" ),
731- os .path .join (args .tsc_build_dir , "lib" ),
732747 os .path .join (args .llbuild_build_dir , "lib" ),
733- os .path .join (args .yams_build_dir , "lib" ),
734748 os .path .join (args .swift_argument_parser_build_dir , "lib" ),
735- os .path .join (args .swift_driver_build_dir , "lib" ),
749+ os .path .join (args .swift_collections_build_dir , "lib" ),
736750 os .path .join (args .swift_crypto_build_dir , "lib" ),
751+ os .path .join (args .swift_driver_build_dir , "lib" ),
752+ os .path .join (args .tsc_build_dir , "lib" ),
753+ os .path .join (args .yams_build_dir , "lib" ),
737754 ] + args .target_info ["paths" ]["runtimeLibraryPaths" ])
738755
739756 if platform .system () == 'Darwin' :
0 commit comments