in build-script.py [0:0]
def main():
args = parse_args()
try:
if not args.verify_generated_files:
generate_gyb_files(
args.gyb_exec,
verbose=args.verbose,
add_source_locations=args.add_source_locations,
)
except subprocess.CalledProcessError as e:
printerr("FAIL: Generating .gyb files failed")
printerr("Executing: %s" % " ".join(e.cmd))
printerr(e.output)
sys.exit(1)
if args.verify_generated_files:
try:
success = verify_generated_files(args.gyb_exec, verbose=args.verbose)
except subprocess.CalledProcessError as e:
printerr(
"FAIL: Gyb-generated files committed to repository do "
"not match generated ones. Please re-generate the "
"gyb-files and recommit them."
)
sys.exit(1)
# Skip the rest of the build if we should perform degyb only
if args.degyb_only:
sys.exit(0)
verify_c_syntax_nodes_match()
if args.generate_xcodeproj:
xcode_gen(config=args.xcconfig_path)
sys.exit(0)
try:
builder = Builder(
toolchain=args.toolchain,
build_dir=realpath(args.build_dir),
multiroot_data_file=args.multiroot_data_file,
release=args.release,
verbose=args.verbose,
disable_sandbox=args.disable_sandbox,
)
# Until rdar://53881101 is implemented, we cannot request a build of multiple
# targets simultaneously. For now, just build one product after the other.
builder.build("SwiftSyntax")
builder.build("SwiftSyntaxParser")
# Only build lit-test-helper if we are planning to run tests
if args.test:
builder.build("lit-test-helper")
except subprocess.CalledProcessError as e:
printerr("FAIL: Building SwiftSyntax failed")
printerr("Executing: %s" % " ".join(e.cmd))
printerr(e.output)
sys.exit(1)
if args.test:
try:
success = run_tests(
toolchain=args.toolchain,
build_dir=realpath(args.build_dir),
multiroot_data_file=args.multiroot_data_file,
release=args.release,
filecheck_exec=realpath(args.filecheck_exec),
skip_lit_tests=args.skip_lit_tests,
verbose=args.verbose,
)
if not success:
# An error message has already been printed by the failing test
# suite
sys.exit(1)
else:
print("** All tests passed **")
except subprocess.CalledProcessError as e:
printerr("FAIL: Running tests failed")
printerr("Executing: %s" % " ".join(e.cmd))
printerr(e.output)
sys.exit(1)