mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The `__future__` we relied on is now, where the 3 specific things are all included [since Python 3.0](https://docs.python.org/3/library/__future__.html): * absolute_import * print_function * unicode_literals * division These import statements are no-ops and are no longer necessary.
54 lines
1.6 KiB
Python
Executable File
54 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
|
|
|
|
def main():
|
|
p = argparse.ArgumentParser()
|
|
p.add_argument("cmake_path", help="The cmake binary to use")
|
|
p.add_argument("swift_src_dir", help="The swift source directory")
|
|
p.add_argument("clang", help="The path to the clang binary to use")
|
|
p.add_argument(
|
|
"swift_root_dir",
|
|
help="A path to a swift root produced by installing "
|
|
"Swift and Foundation together. We infer swiftc "
|
|
"from here",
|
|
)
|
|
p.add_argument("destdir", help="The directory to perform the actual " "build in")
|
|
p.add_argument(
|
|
"--clean", action="store_true", help="Delete destdir before performing a build."
|
|
)
|
|
args = p.parse_args()
|
|
|
|
if args.clean:
|
|
print("Asked to clean... Cleaning!")
|
|
subprocess.check_output(["/bin/rm", "-rfv", args.destdir])
|
|
subprocess.check_call(["/bin/mkdir", "-p", args.destdir])
|
|
os.chdir(args.destdir)
|
|
configureInvocation = [
|
|
args.cmake_path,
|
|
"-GNinja",
|
|
"-DSWIFT_EXEC={}/bin/swiftc".format(args.swift_root_dir),
|
|
"-DCLANG_EXEC={}".format(args.clang),
|
|
"-DSWIFT_LIBRARY_PATH={}/lib/swift".format(args.swift_root_dir),
|
|
"{}/benchmark".format(args.swift_src_dir),
|
|
]
|
|
print("COMMAND: {}".format(" ".join(configureInvocation)))
|
|
subprocess.check_call(configureInvocation)
|
|
|
|
buildInvocation = [
|
|
args.cmake_path,
|
|
"--build",
|
|
args.destdir,
|
|
"--",
|
|
"swift-benchmark-linux-x86_64",
|
|
]
|
|
print("COMMAND: {}".format(" ".join(buildInvocation)))
|
|
subprocess.check_call(buildInvocation)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|