Skip to content

Commit 8c4a0a4

Browse files
authored
Merge pull request #537 from artemcm/LocalCompilerInstallBuild
[Build Script Helper] Add an option that indicates the driver is being built for use with a local just-built frontend
2 parents 24419b4 + 25b4d1a commit 8c4a0a4

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

Utilities/build-script-helper.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,12 @@ def build_using_cmake(args, toolchain_bin, build_dir, targets):
405405
base_cmake_flags.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=%s' % macos_deployment_target)
406406

407407
# Target directory for build artifacts
408-
cmake_target_dir = os.path.join(build_dir, target)
408+
# If building for a local compiler build, use the build directory directly
409+
if args.local_compiler_build:
410+
cmake_target_dir = build_dir
411+
else:
412+
cmake_target_dir = os.path.join(build_dir, target)
413+
409414
driver_dir = os.path.join(cmake_target_dir, args.configuration)
410415
dependencies_dir = os.path.join(driver_dir, 'dependencies')
411416

@@ -426,7 +431,7 @@ def build_using_cmake(args, toolchain_bin, build_dir, targets):
426431
base_cmake_flags, swift_flags)
427432

428433
def build_llbuild_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_flags, swift_flags):
429-
print('Building llbuild for target: %s' % target)
434+
print('Building Swift Driver dependency: llbuild')
430435
llbuild_source_dir = os.path.join(os.path.dirname(args.package_path), 'llbuild')
431436
llbuild_build_dir = os.path.join(build_dir, 'llbuild')
432437
llbuild_api_dir = os.path.join(llbuild_build_dir, '.cmake/api/v1/query')
@@ -454,15 +459,15 @@ def build_llbuild_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_f
454459
llbuild_source_dir, llbuild_build_dir, 'products/all')
455460

456461
def build_tsc_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_flags, swift_flags):
457-
print('Building TSC for target: %s' % target)
462+
print('Building Swift Driver dependency: TSC')
458463
tsc_source_dir = os.path.join(os.path.dirname(args.package_path), 'swift-tools-support-core')
459464
tsc_build_dir = os.path.join(build_dir, 'swift-tools-support-core')
460465
tsc_swift_flags = swift_flags[:]
461466
cmake_build(args, swiftc_exec, base_cmake_flags, tsc_swift_flags,
462467
tsc_source_dir, tsc_build_dir)
463468

464469
def build_yams_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_flags, swift_flags):
465-
print('Building Yams for target: %s' % target)
470+
print('Building Swift Driver dependency: Yams')
466471
yams_source_dir = os.path.join(os.path.dirname(args.package_path), 'yams')
467472
yams_build_dir = os.path.join(build_dir, 'yams')
468473
yams_cmake_flags = base_cmake_flags + [
@@ -481,7 +486,7 @@ def build_yams_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_flag
481486
yams_source_dir, yams_build_dir)
482487

483488
def build_argument_parser_using_cmake(args, target, swiftc_exec, build_dir, base_cmake_flags, swift_flags):
484-
print('Building Argument Parser for target: %s' % target)
489+
print('Building Swift Driver dependency: Argument Parser')
485490
parser_source_dir = os.path.join(os.path.dirname(args.package_path), 'swift-argument-parser')
486491
parser_build_dir = os.path.join(build_dir, 'swift-argument-parser')
487492
custom_flags = ['-DBUILD_TESTING=NO', '-DBUILD_EXAMPLES=NO']
@@ -583,6 +588,7 @@ def add_common_args(parser):
583588
parser.add_argument('--configuration', '-c', default='debug', help='build using configuration (release|debug)')
584589
parser.add_argument('--no-local-deps', action='store_true', help='use normal remote dependencies when building')
585590
parser.add_argument('--verbose', '-v', action='store_true', help='enable verbose output')
591+
parser.add_argument('--local_compiler_build', action='store_true', help='driver is being built for use with a local compiler build')
586592

587593
subparsers = parser.add_subparsers(title='subcommands', dest='action', metavar='action')
588594
clean_parser = subparsers.add_parser('clean', help='clean the package')
@@ -612,6 +618,9 @@ def add_common_args(parser):
612618
if args.cross_compile_hosts and not all('apple-macos' in target for target in args.cross_compile_hosts):
613619
error('Cross-compilation is currently only supported for the Darwin platform.')
614620

621+
if args.cross_compile_hosts and args.local_compiler_build:
622+
error('Cross-compilation is currently not supported for the local compiler installation')
623+
615624
if args.dispatch_build_dir:
616625
args.dispatch_build_dir = os.path.abspath(args.dispatch_build_dir)
617626

0 commit comments

Comments
 (0)