@@ -340,13 +340,14 @@ def run_code_generation(
340
340
swiftpm_call = get_swiftpm_invocation (
341
341
toolchain = toolchain ,
342
342
action = "run" ,
343
+ package_dir = GENERATION_PACKAGE_DIR ,
343
344
build_dir = build_dir ,
344
345
multiroot_data_file = multiroot_data_file ,
345
346
release = release ,
346
347
)
347
348
348
349
swiftpm_call .extend ([
349
- "SwiftSyntaxBuilderGeneration " , swiftsyntaxbuilder_destination
350
+ "swift-syntax-builder-generation " , swiftsyntaxbuilder_destination
350
351
])
351
352
352
353
if verbose :
@@ -389,13 +390,13 @@ def clear_gyb_files_from_previous_run(
389
390
390
391
391
392
def get_swiftpm_invocation (
392
- toolchain : str , action : str , build_dir : Optional [str ],
393
+ toolchain : str , action : str , package_dir : str , build_dir : Optional [str ],
393
394
multiroot_data_file : Optional [str ], release : bool
394
395
) -> List [str ]:
395
396
swift_exec = os .path .join (toolchain , "bin" , "swift" )
396
397
397
398
swiftpm_call = [swift_exec , action ]
398
- swiftpm_call .extend (["--package-path" , PACKAGE_DIR ])
399
+ swiftpm_call .extend (["--package-path" , package_dir ])
399
400
if platform .system () != "Darwin" :
400
401
swiftpm_call .extend (["--enable-test-discovery" ])
401
402
if release :
@@ -416,6 +417,7 @@ class Builder(object):
416
417
def __init__ (
417
418
self ,
418
419
toolchain : str ,
420
+ package_dir : str ,
419
421
build_dir : Optional [str ],
420
422
multiroot_data_file : Optional [str ],
421
423
release : bool ,
@@ -425,6 +427,7 @@ def __init__(
425
427
self .swiftpm_call = get_swiftpm_invocation (
426
428
toolchain = toolchain ,
427
429
action = "build" ,
430
+ package_dir = package_dir ,
428
431
build_dir = build_dir ,
429
432
multiroot_data_file = multiroot_data_file ,
430
433
release = release ,
@@ -603,6 +606,7 @@ def find_lit_test_helper_exec(
603
606
swiftpm_call = get_swiftpm_invocation (
604
607
toolchain = toolchain ,
605
608
action = "build" ,
609
+ package_dir = PACKAGE_DIR ,
606
610
build_dir = build_dir ,
607
611
multiroot_data_file = None ,
608
612
release = release ,
@@ -655,6 +659,7 @@ def run_xctests(toolchain: str, build_dir: Optional[str],
655
659
swiftpm_call = get_swiftpm_invocation (
656
660
toolchain = toolchain ,
657
661
action = "test" ,
662
+ package_dir = PACKAGE_DIR ,
658
663
build_dir = build_dir ,
659
664
multiroot_data_file = multiroot_data_file ,
660
665
release = release ,
@@ -735,20 +740,31 @@ def verify_source_code_command(args: argparse.Namespace) -> None:
735
740
736
741
def build_command (args : argparse .Namespace ) -> None :
737
742
try :
738
- builder = Builder (
739
- toolchain = args .toolchain ,
740
- build_dir = realpath (args .build_dir ),
741
- multiroot_data_file = args .multiroot_data_file ,
742
- release = args .release ,
743
- verbose = args .verbose ,
744
- disable_sandbox = args .disable_sandbox ,
745
- )
746
- # Until rdar://53881101 is implemented, we cannot request a build of multiple
747
- # targets simultaneously. For now, just build one product after the other.
748
- builder .build ("SwiftSyntax" )
749
- builder .build ("SwiftSyntaxParser" )
750
- builder .build ("SwiftSyntaxBuilder" )
751
- builder .build ("SwiftSyntaxBuilderGeneration" )
743
+ package_products = [
744
+ (PACKAGE_DIR , [
745
+ 'SwiftSyntax' ,
746
+ 'SwiftSyntaxParser' ,
747
+ 'SwiftSyntaxBuilder' ,
748
+ ]),
749
+ (GENERATION_PACKAGE_DIR , [
750
+ 'swift-syntax-builder-generation' ,
751
+ ]),
752
+ ]
753
+
754
+ for package_dir , products in package_products :
755
+ builder = Builder (
756
+ toolchain = args .toolchain ,
757
+ package_dir = package_dir ,
758
+ build_dir = realpath (args .build_dir ),
759
+ multiroot_data_file = args .multiroot_data_file ,
760
+ release = args .release ,
761
+ verbose = args .verbose ,
762
+ disable_sandbox = args .disable_sandbox ,
763
+ )
764
+ # Until rdar://53881101 is implemented, we cannot request a build of multiple
765
+ # targets simultaneously. For now, just build one product after the other.
766
+ for product in products :
767
+ builder .build (product )
752
768
except subprocess .CalledProcessError as e :
753
769
fail_for_called_process_error ("Building SwiftSyntax failed" , e )
754
770
@@ -757,6 +773,7 @@ def test_command(args: argparse.Namespace) -> None:
757
773
try :
758
774
builder = Builder (
759
775
toolchain = args .toolchain ,
776
+ package_dir = PACKAGE_DIR ,
760
777
build_dir = realpath (args .build_dir ),
761
778
multiroot_data_file = args .multiroot_data_file ,
762
779
release = args .release ,
0 commit comments