@@ -166,14 +166,16 @@ def add_test_args(parser):
166
166
167
167
def parse_global_args (args ):
168
168
"""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" )
173
172
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
+
177
179
178
180
if platform .system () == 'Darwin' :
179
181
args .sysroot = call_output (["xcrun" , "--sdk" , "macosx" , "--show-sdk-path" ], verbose = args .verbose )
@@ -305,11 +307,12 @@ def build(args):
305
307
build_llbuild (args )
306
308
307
309
if args .bootstrap :
308
- build_tsc (args )
309
- build_yams (args )
310
310
build_swift_argument_parser (args )
311
- build_swift_driver (args )
311
+ build_swift_collections (args )
312
312
build_swift_crypto (args )
313
+ build_swift_driver (args )
314
+ build_tsc (args )
315
+ build_yams (args )
313
316
314
317
build_swiftpm_with_cmake (args )
315
318
build_swiftpm_with_swiftpm (args ,integrated_swift_driver = False )
@@ -531,17 +534,6 @@ def build_llbuild(args):
531
534
llbuild_source_dir = get_llbuild_source_path (args )
532
535
build_with_cmake (args , flags , llbuild_source_dir , args .llbuild_build_dir )
533
536
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
-
545
537
def build_swift_argument_parser (args ):
546
538
note ("Building swift-argument-parser" )
547
539
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):
555
547
cmake_flags .append ("-DBUILD_EXAMPLES=NO" )
556
548
build_with_cmake (args , cmake_flags , args .swift_argument_parser_source_dir , args .swift_argument_parser_build_dir )
557
549
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 " )
561
553
562
554
cmake_flags = []
563
555
if platform .system () == 'Darwin' :
564
556
cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
565
557
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 )
569
560
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 )
571
571
572
572
def build_swift_driver (args ):
573
573
note ("Building SwiftDriver" )
@@ -584,17 +584,31 @@ def build_swift_driver(args):
584
584
cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
585
585
586
586
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 " )
591
591
592
592
cmake_flags = []
593
593
if platform .system () == 'Darwin' :
594
594
cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
595
595
cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
596
596
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 )
598
612
599
613
def add_rpath_for_cmake_build (args , rpath ):
600
614
"Adds the given rpath to the CMake-built swift-build"
@@ -610,11 +624,12 @@ def build_swiftpm_with_cmake(args):
610
624
if args .bootstrap :
611
625
cmake_flags = [
612
626
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" ),
618
633
"-DFIND_PM_DEPS:BOOL=YES" ,
619
634
]
620
635
else :
@@ -632,10 +647,11 @@ def build_swiftpm_with_cmake(args):
632
647
add_rpath_for_cmake_build (args , args .llbuild_build_dir )
633
648
634
649
if platform .system () == "Darwin" :
635
- add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
636
650
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" ))
639
655
640
656
def build_swiftpm_with_swiftpm (args , integrated_swift_driver ):
641
657
"""Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -728,12 +744,13 @@ def get_swiftpm_env_cmd(args):
728
744
if args .bootstrap :
729
745
libs_joined = ":" .join ([
730
746
os .path .join (args .bootstrap_dir , "lib" ),
731
- os .path .join (args .tsc_build_dir , "lib" ),
732
747
os .path .join (args .llbuild_build_dir , "lib" ),
733
- os .path .join (args .yams_build_dir , "lib" ),
734
748
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" ),
736
750
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" ),
737
754
] + args .target_info ["paths" ]["runtimeLibraryPaths" ])
738
755
739
756
if platform .system () == 'Darwin' :
0 commit comments