File: build_linux.py

package info (click to toggle)
swiftlang 6.1.3-4
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,791,644 kB
  • sloc: cpp: 9,901,738; ansic: 2,201,433; asm: 1,091,827; python: 308,252; objc: 82,166; f90: 80,126; lisp: 38,358; pascal: 25,559; sh: 20,429; ml: 5,058; perl: 4,745; makefile: 4,484; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (53 lines) | stat: -rwxr-xr-x 1,682 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/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()