Migrated from Make to CMake.
This commit is contained in:
parent
cda05294f5
commit
b6ba093000
52 changed files with 1276 additions and 1210 deletions
|
|
@ -4,7 +4,6 @@ import argparse
|
|||
import hashlib
|
||||
import os
|
||||
from pathlib import Path
|
||||
import shlex
|
||||
import subprocess
|
||||
import tarfile
|
||||
import tempfile
|
||||
|
|
@ -18,6 +17,7 @@ def main():
|
|||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('archive', type=Path)
|
||||
parser.add_argument('--gui', action='store_true')
|
||||
parser.add_argument('--generator', default=os.environ.get('CMAKE_GENERATOR'))
|
||||
args = parser.parse_args()
|
||||
archive = args.archive.resolve()
|
||||
assert archive.with_name(archive.name + '.sha256').read_text().split()[0] == digest(archive)
|
||||
|
|
@ -33,16 +33,23 @@ def main():
|
|||
assert all('__pycache__' not in Path(n).parts and '.git' not in Path(n).parts for n in names)
|
||||
for name in ('first', 'different-path'):
|
||||
source.extractall(root / name, filter='data')
|
||||
env = dict(os.environ, SOURCE_DATE_EPOCH=str(epoch), MAKEFLAGS='', MFLAGS='')
|
||||
env = dict(os.environ, SOURCE_DATE_EPOCH=str(epoch))
|
||||
if args.generator:
|
||||
env['CMAKE_GENERATOR'] = args.generator
|
||||
builds = []
|
||||
for name in ('first', 'different-path'):
|
||||
project = root / name / top
|
||||
log = root / (name + '.log')
|
||||
make = shlex.split(env.get('MAKE', 'make'))
|
||||
with log.open('w') as output:
|
||||
try:
|
||||
subprocess.run(make + ['BUILD_DIR=build', 'release'], cwd=project, env=env, stdout=output,
|
||||
stderr=subprocess.STDOUT, check=True)
|
||||
subprocess.run(['cmake', '-S', '.', '-B', 'build/release',
|
||||
'-DCMAKE_BUILD_TYPE=Release', '-DXTC_REPRODUCIBLE=ON',
|
||||
f'-DXTC_BUILD_GUI={"ON" if args.gui else "OFF"}'],
|
||||
cwd=project, env=env, stdout=output, stderr=subprocess.STDOUT, check=True)
|
||||
subprocess.run(['cmake', '--build', 'build/release', '--parallel', '3'],
|
||||
cwd=project, env=env, stdout=output, stderr=subprocess.STDOUT, check=True)
|
||||
subprocess.run(['ctest', '--test-dir', 'build/release', '--output-on-failure'],
|
||||
cwd=project, env=env, stdout=output, stderr=subprocess.STDOUT, check=True)
|
||||
except subprocess.CalledProcessError:
|
||||
print(log.read_text()[-12000:])
|
||||
raise
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue