@@ -52,6 +52,7 @@ def _create_compile_command(opts: BuildOptions, cpp_file: Path, | |||
'-Wshadow', | |||
'-Wconversion', | |||
'-fdiagnostics-color', | |||
'-DFMT_HEADER_ONLY=1', | |||
'-pthread', | |||
'-c', | |||
str(cpp_file), | |||
@@ -75,6 +76,7 @@ def _create_compile_command(opts: BuildOptions, cpp_file: Path, | |||
'/nologo', | |||
'/EHsc', | |||
'/std:c++latest', | |||
'/DFMT_HEADER_ONLY=1', | |||
f'/I{HERE_DIR / "src"}', | |||
str(cpp_file), | |||
'/c', |
@@ -1,2 +1,3 @@ | |||
Private-Include: external/spdlog/include | |||
Private-Include: external/wil/include | |||
Private-Include: external/wil/include | |||
Private-Define: FMT_HEADER_ONLY=1 |
@@ -12,7 +12,7 @@ library_manifest library_manifest::load_from_file(const fs::path& fpath) { | |||
for (auto& pair : kvs.items()) { | |||
if (pair.key() == "Private-Include") { | |||
ret.private_includes.emplace_back(pair.value()); | |||
} else if (pair.key() == "Private-Defines") { | |||
} else if (pair.key() == "Private-Define") { | |||
ret.private_defines.emplace_back(pair.value()); | |||
} else { | |||
throw std::runtime_error( |
@@ -2,6 +2,7 @@ | |||
import argparse | |||
from pathlib import Path | |||
from typing import List, NamedTuple | |||
import shutil | |||
import subprocess | |||
import sys | |||
@@ -12,24 +13,27 @@ class TestOptions(NamedTuple): | |||
def run_test_dir(dir: Path, opts: TestOptions) -> bool: | |||
try: | |||
subprocess.check_call( | |||
[ | |||
str(opts.exe), | |||
'build', | |||
'--export', | |||
'--warnings', | |||
'--tests', | |||
'--toolchain', | |||
opts.toolchain, | |||
], | |||
cwd=dir, | |||
) | |||
except subprocess.CalledProcessError: | |||
import traceback | |||
traceback.print_exc() | |||
return False | |||
return True | |||
print(f'Running test: {dir.name} ...') | |||
out_dir = dir / '_build' | |||
if out_dir.exists(): | |||
shutil.rmtree(out_dir) | |||
res = subprocess.run( | |||
[ | |||
str(opts.exe), | |||
'build', | |||
'--export', | |||
'--warnings', | |||
'--tests', | |||
f'--toolchain={opts.toolchain}', | |||
f'--out-dir={out_dir}', | |||
], | |||
cwd=dir, | |||
stdout=subprocess.PIPE, | |||
stderr=subprocess.STDOUT, | |||
) | |||
if res.returncode != 0: | |||
print(f'Test failed with exit code [{res.returncode}]:\n{res.stdout}') | |||
return res.returncode == 0 | |||
def run_tests(opts: TestOptions) -> int: |