"""Build full native action suite without changing production source or executables.""" from pathlib import Path import subprocess import sys from check_artifacts import toolchain ROOT = Path(__file__).resolve().parents[2] def main(): (ROOT/'build/actions').mkdir(parents=True, exist_ok=True) for fixture in ('prepare_arrival_fixtures.py', 'prepare_clover_fixtures.py', 'prepare_poker_fixtures.py'): subprocess.run([sys.executable, '-B', str(ROOT/'tools/tests'/fixture)], check=True, cwd=ROOT) ml, link = toolchain() sdk = Path('C:/Program Files (x86)/Windows Kits/10/Lib') libraries = next(p/'um/x86' for p in sorted(sdk.iterdir(), reverse=True) if (p/'um/x86/kernel32.lib').exists()) subprocess.run([str(ml), '/c', '/coff', '/Cp', '/nologo', '/I.', '/DCASINO_ACTION_TEST=1', '/Fobuild/actions/actions-test.obj', 'poker.asm'], cwd=ROOT, check=True) subprocess.run([str(link), '/nologo', '/SUBSYSTEM:CONSOLE', '/LIBPATH:'+str(libraries), '/OUT:build/actions/actions-test.exe', 'build/actions/actions-test.obj', 'kernel32.lib', 'winmm.lib', 'user32.lib', 'gdi32.lib', 'opengl32.lib'], cwd=ROOT, check=True) subprocess.run([str(ROOT/'build/actions/actions-test.exe')], cwd=ROOT, check=True, timeout=600) print((ROOT/'build/actions/test-report.txt').read_text(encoding='ascii')) if __name__ == '__main__': main()