-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathvirtualbox-build.py
executable file
·55 lines (47 loc) · 1.45 KB
/
virtualbox-build.py
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
54
55
#!/usr/bin/env python3
import argparse
import datetime
import pathlib
import shutil
import subprocess
import sys
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("builddir")
args = parser.parse_args()
DIRPATH_VBOX_BUILD = pathlib.Path(args.builddir)
assert DIRPATH_VBOX_BUILD.is_dir()
shutil.rmtree(DIRPATH_VBOX_BUILD, ignore_errors=True)
DIRPATH_VBOX_BUILD.mkdir(parents=True)
starttime = datetime.datetime.now()
SCRIPT_VBOX_BUILD = DIRPATH_VBOX_BUILD / "build.sh"
with open(SCRIPT_VBOX_BUILD, "w") as f:
f.write(
f"""\
cat > "{DIRPATH_VBOX_BUILD}/LocalConfig.kmk" <<EOF
VBOX_WITH_R0_LOGGING = 1 # Requires building with kmk BUILD_TYPE=debug
VBOX_WITH_TESTSUITE =
VBOX_WITH_TESTCASES =
kBuildGlobalDefaults_LD_DEBUG =
EOF
./configure\
--disable-hardening\
`# Using --disable-java, --disable-python and --disable-docs just to speed up the build`\
--disable-java\
--disable-python\
--disable-docs\
--with-qt-dir="/opt/local/libexec/qt5"\
--with-openssl-dir="/usr/local/opt/openssl"\
--with-xcode-dir="tools/darwin.amd64/xcode/v6.2/x.app"\
--out-path="{DIRPATH_VBOX_BUILD}"
source "{DIRPATH_VBOX_BUILD}/env.sh"
kmk
"""
)
subprocess.run(
["/usr/bin/env", "bash", SCRIPT_VBOX_BUILD],
check=True,
stdout=sys.stdout,
stderr=sys.stderr,
)
print("Done in {}".format(datetime.datetime.now() - starttime))