-
Notifications
You must be signed in to change notification settings - Fork 1
/
buildcheck.py
29 lines (26 loc) · 920 Bytes
/
buildcheck.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
import subprocess
import os
def configureAndMake(cppc, opts, buildtype):
cxx = "CXX=" + cppc;
dirname = cppc + '_' + ''.join(opts) + '_' + buildtype
params = "CXXFLAGS='-Wall -Wextra -Werror {}'".format(' '.join(opts));
try:
os.mkdir(dirname);
except OSError:
pass
cmd = "( cd {}; {} {} cmake -DCMAKE_BUILD_TYPE={} ../..; make -j2 )".format( \
dirname, cxx, params, buildtype)
ret = subprocess.call(cmd, shell=True);
if (0 != ret):
return "[failed] {}\n".format(dirname)
else:
return "[ ok ] {}\n".format(dirname)
f = open("buildlog", "wt")
for cppc in ('clang++', 'g++'):
for opt1 in ('-O0', '-O1', '-O2', '-O3'):
for opt2 in ('', '-m32'):
for buildtype in ('Debug', 'Release'):
ret = configureAndMake(cppc, (opt1, opt2), buildtype)
f.write(ret)
f.flush()
f.close()