From d6fb2178b12498180a24554adb278f0e0ae03d59 Mon Sep 17 00:00:00 2001 From: vector-of-bool Date: Tue, 10 Dec 2019 21:49:58 -0700 Subject: [PATCH] Clean up build script to just use a toolchain --- tools/build.py | 50 +++++++++++--------------------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) diff --git a/tools/build.py b/tools/build.py index 9fb5b591..4347c2a1 100755 --- a/tools/build.py +++ b/tools/build.py @@ -1,14 +1,11 @@ #!/usr/bin/env python3 import argparse -from contextlib import contextmanager import os from pathlib import Path from typing import Sequence -import subprocess import sys import shutil -import tempfile from dds_ci import paths from self_build import self_build @@ -19,40 +16,11 @@ BUILD_DIR = ROOT / '_build' -@contextmanager -def _generate_toolchain(cxx: str): - with tempfile.NamedTemporaryFile( - suffix='-dds-toolchain.dds', mode='wb', delete=False) as f: - comp_id = 'GNU' - flags = '' - link_flags = '' - if cxx in ('cl', 'cl.exe'): - comp_id = 'MSVC' - flags += '/experimental:preprocessor ' - link_flags += 'rpcrt4.lib ' - else: - flags += '-fconcepts' - flags += ' -DSPDLOG_COMPILED_LIB' - content = f''' - Compiler-ID: {comp_id} - C++-Compiler: {cxx} - C++-Version: C++17 - Debug: True - Flags: {flags} - Link-Flags: {link_flags} - ''' - print('Using generated toolchain file: ' + content) - f.write(content.encode('utf-8')) - f.close() - yield Path(f.name) - os.unlink(f.name) - - def main(argv: Sequence[str]) -> int: + # Prior versions of this script took a --cxx argument, but we don't care anymore parser = argparse.ArgumentParser() - parser.add_argument( - '--cxx', help='Path/name of the C++ compiler to use.', required=True) - args = parser.parse_args(argv) + parser.add_argument('--cxx', help=argparse.SUPPRESS) + parser.parse_args(argv) dds_bootstrap_env_key = 'DDS_BOOTSTRAP_PREV_EXE' if dds_bootstrap_env_key not in os.environ: @@ -67,10 +35,14 @@ def main(argv: Sequence[str]) -> int: print(f'Using previously built DDS executable: {dds_exe}') self_deps_get(dds_exe, paths.SELF_TEST_REPO_DIR) - with _generate_toolchain(args.cxx) as tc_fpath: - self_deps_build(dds_exe, tc_fpath, paths.SELF_TEST_REPO_DIR, - ROOT / 'remote.dds') - self_build(dds_exe, toolchain=tc_fpath, dds_flags=['--apps']) + if os.name == 'nt': + tc_fpath = ROOT / 'tools/msvc.dds' + else: + tc_fpath = ROOT / 'gcc-9.dds' + + self_deps_build(dds_exe, str(tc_fpath), paths.SELF_TEST_REPO_DIR, + ROOT / 'remote.dds') + self_build(dds_exe, toolchain=str(tc_fpath), dds_flags=['--apps']) return 0