Skip to content

Commit d4c7e19

Browse files
committed
Update build-script to build separate generation package
1 parent 98ab7f6 commit d4c7e19

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

build-script.py

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -340,13 +340,14 @@ def run_code_generation(
340340
swiftpm_call = get_swiftpm_invocation(
341341
toolchain=toolchain,
342342
action="run",
343+
package_dir=GENERATION_PACKAGE_DIR,
343344
build_dir=build_dir,
344345
multiroot_data_file=multiroot_data_file,
345346
release=release,
346347
)
347348

348349
swiftpm_call.extend([
349-
"SwiftSyntaxBuilderGeneration", swiftsyntaxbuilder_destination
350+
"swift-syntax-builder-generation", swiftsyntaxbuilder_destination
350351
])
351352

352353
if verbose:
@@ -389,13 +390,13 @@ def clear_gyb_files_from_previous_run(
389390

390391

391392
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],
393394
multiroot_data_file: Optional[str], release: bool
394395
) -> List[str]:
395396
swift_exec = os.path.join(toolchain, "bin", "swift")
396397

397398
swiftpm_call = [swift_exec, action]
398-
swiftpm_call.extend(["--package-path", PACKAGE_DIR])
399+
swiftpm_call.extend(["--package-path", package_dir])
399400
if platform.system() != "Darwin":
400401
swiftpm_call.extend(["--enable-test-discovery"])
401402
if release:
@@ -416,6 +417,7 @@ class Builder(object):
416417
def __init__(
417418
self,
418419
toolchain: str,
420+
package_dir: str,
419421
build_dir: Optional[str],
420422
multiroot_data_file: Optional[str],
421423
release: bool,
@@ -425,6 +427,7 @@ def __init__(
425427
self.swiftpm_call = get_swiftpm_invocation(
426428
toolchain=toolchain,
427429
action="build",
430+
package_dir=package_dir,
428431
build_dir=build_dir,
429432
multiroot_data_file=multiroot_data_file,
430433
release=release,
@@ -603,6 +606,7 @@ def find_lit_test_helper_exec(
603606
swiftpm_call = get_swiftpm_invocation(
604607
toolchain=toolchain,
605608
action="build",
609+
package_dir=PACKAGE_DIR,
606610
build_dir=build_dir,
607611
multiroot_data_file=None,
608612
release=release,
@@ -655,6 +659,7 @@ def run_xctests(toolchain: str, build_dir: Optional[str],
655659
swiftpm_call = get_swiftpm_invocation(
656660
toolchain=toolchain,
657661
action="test",
662+
package_dir=PACKAGE_DIR,
658663
build_dir=build_dir,
659664
multiroot_data_file=multiroot_data_file,
660665
release=release,
@@ -735,20 +740,31 @@ def verify_source_code_command(args: argparse.Namespace) -> None:
735740

736741
def build_command(args: argparse.Namespace) -> None:
737742
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)
752768
except subprocess.CalledProcessError as e:
753769
fail_for_called_process_error("Building SwiftSyntax failed", e)
754770

@@ -757,6 +773,7 @@ def test_command(args: argparse.Namespace) -> None:
757773
try:
758774
builder = Builder(
759775
toolchain=args.toolchain,
776+
package_dir=PACKAGE_DIR,
760777
build_dir=realpath(args.build_dir),
761778
multiroot_data_file=args.multiroot_data_file,
762779
release=args.release,

0 commit comments

Comments
 (0)