@@ -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 )
@@ -502,17 +505,6 @@ def build_llbuild(args):
502
505
llbuild_source_dir = get_llbuild_source_path (args )
503
506
build_with_cmake (args , flags , llbuild_source_dir , args .llbuild_build_dir )
504
507
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
-
516
508
def build_swift_argument_parser (args ):
517
509
note ("Building swift-argument-parser" )
518
510
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):
526
518
cmake_flags .append ("-DBUILD_EXAMPLES=NO" )
527
519
build_with_cmake (args , cmake_flags , args .swift_argument_parser_source_dir , args .swift_argument_parser_build_dir )
528
520
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 " )
532
524
533
525
cmake_flags = []
534
526
if platform .system () == 'Darwin' :
535
527
cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
536
528
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 )
540
531
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 )
542
542
543
543
def build_swift_driver (args ):
544
544
note ("Building SwiftDriver" )
@@ -555,17 +555,31 @@ def build_swift_driver(args):
555
555
cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
556
556
557
557
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 " )
562
562
563
563
cmake_flags = []
564
564
if platform .system () == 'Darwin' :
565
565
cmake_flags .append ("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target (args ), g_macos_deployment_target ))
566
566
cmake_flags .append ("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target )
567
567
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 )
569
583
570
584
def add_rpath_for_cmake_build (args , rpath ):
571
585
"Adds the given rpath to the CMake-built swift-build"
@@ -581,11 +595,12 @@ def build_swiftpm_with_cmake(args):
581
595
if args .bootstrap :
582
596
cmake_flags = [
583
597
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" ),
589
604
"-DFIND_PM_DEPS:BOOL=YES" ,
590
605
]
591
606
else :
@@ -603,10 +618,11 @@ def build_swiftpm_with_cmake(args):
603
618
add_rpath_for_cmake_build (args , args .llbuild_build_dir )
604
619
605
620
if platform .system () == "Darwin" :
606
- add_rpath_for_cmake_build (args , os .path .join (args .yams_build_dir , "lib" ))
607
621
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" ))
610
626
611
627
def build_swiftpm_with_swiftpm (args , integrated_swift_driver ):
612
628
"""Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -699,12 +715,13 @@ def get_swiftpm_env_cmd(args):
699
715
if args .bootstrap :
700
716
libs_joined = ":" .join ([
701
717
os .path .join (args .bootstrap_dir , "lib" ),
702
- os .path .join (args .tsc_build_dir , "lib" ),
703
718
os .path .join (args .llbuild_build_dir , "lib" ),
704
- os .path .join (args .yams_build_dir , "lib" ),
705
719
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" ),
707
721
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" ),
708
725
] + args .target_info ["paths" ]["runtimeLibraryPaths" ])
709
726
710
727
if platform .system () == 'Darwin' :
0 commit comments