in build-script-helper.py [0:0]
def run(args):
package_name = os.path.basename(args.package_dir)
env = dict(os.environ)
# Use local dependencies (i.e. checked out next sourcekit-lsp).
if not args.no_local_deps:
env['SWIFTCI_USE_LOCAL_DEPS'] = "1"
env['SWIFT_STRESS_TESTER_SOURCEKIT_SEARCHPATH'] = args.sourcekitd_dir
if args.update:
print("** Updating dependencies of %s **" % package_name)
handle_errors(update_swiftpm_dependencies,
'Updating dependencies of %s failed' % package_name,
package_dir=args.package_dir,
swift_exec=args.swift_exec,
build_dir=args.build_dir,
env=env,
verbose=args.verbose)
# The test action creates its own build. No need to build if we are just testing
if should_run_any_action(['build', 'install'], args.build_actions):
print("** Building %s **" % package_name)
handle_errors(invoke_swift,
'Building %s failed' % package_name,
package_dir=args.package_dir,
swift_exec=args.swift_exec,
action='build',
products=get_products(args.package_dir),
build_dir=args.build_dir,
multiroot_data_file=args.multiroot_data_file,
config=args.config,
env=env,
verbose=args.verbose)
output_dir = os.path.realpath(os.path.join(args.build_dir, args.config))
if should_run_action("generate-xcodeproj", args.build_actions):
print("** Generating Xcode project for %s **" % package_name)
handle_errors(generate_xcodeproj,
'Generating the Xcode project failed',
args.package_dir,
swift_exec=args.swift_exec,
sourcekit_searchpath=args.sourcekitd_dir,
env=env,
verbose=args.verbose)
if should_run_action("test", args.build_actions):
print("** Testing %s **" % package_name)
handle_errors(invoke_swift,
'Testing %s failed' % package_name,
package_dir=args.package_dir,
swift_exec=args.swift_exec,
action='test',
products=['%sPackageTests' % package_name],
build_dir=args.build_dir,
multiroot_data_file=args.multiroot_data_file,
config=args.config,
env=env,
verbose=args.verbose)
if should_run_action("install", args.build_actions):
print("** Installing %s **" % package_name)
stdlib_dir = os.path.join(args.toolchain, 'lib', 'swift', 'macosx')
handle_errors(install_package,
'Installing %s failed' % package_name,
args.package_dir,
install_dir=args.prefix,
sourcekit_searchpath=args.sourcekitd_dir,
build_dir=output_dir,
rpaths_to_delete=[stdlib_dir],
verbose=args.verbose)