| BOOTSTRAP_DIR = BUILD_DIR / '_bootstrap' | BOOTSTRAP_DIR = BUILD_DIR / '_bootstrap' | ||||
| PREBUILT_DIR = PROJECT_ROOT / '_prebuilt' | PREBUILT_DIR = PROJECT_ROOT / '_prebuilt' | ||||
| EXE_SUFFIX = '.exe' if os.name == 'nt' else '' | |||||
| def _run_quiet(args) -> None: | def _run_quiet(args) -> None: | ||||
| cmd = [str(s) for s in args] | cmd = [str(s) for s in args] | ||||
| def _build_bootstrap_phase(ph: str, args: argparse.Namespace) -> None: | def _build_bootstrap_phase(ph: str, args: argparse.Namespace) -> None: | ||||
| print(f'Running build: {ph} (Please wait a moment...)') | print(f'Running build: {ph} (Please wait a moment...)') | ||||
| env = os.environ.copy() | env = os.environ.copy() | ||||
| env['DDS_BOOTSTRAP_PREV_EXE'] = PREBUILT_DIR / 'dds' | |||||
| env['DDS_BOOTSTRAP_PREV_EXE'] = str(PREBUILT_DIR / 'dds') | |||||
| subprocess.check_call( | subprocess.check_call( | ||||
| [ | [ | ||||
| sys.executable, | sys.executable, | ||||
| '-u', | |||||
| str(BOOTSTRAP_DIR / 'tools/build.py'), | str(BOOTSTRAP_DIR / 'tools/build.py'), | ||||
| f'--cxx={args.cxx}', | f'--cxx={args.cxx}', | ||||
| ], | ], | ||||
| def _pull_executable() -> Path: | def _pull_executable() -> Path: | ||||
| prebuild_dir = (PROJECT_ROOT / '_prebuilt') | prebuild_dir = (PROJECT_ROOT / '_prebuilt') | ||||
| prebuild_dir.mkdir(exist_ok=True) | prebuild_dir.mkdir(exist_ok=True) | ||||
| exe, = list(BOOTSTRAP_DIR.glob('_build/dds*')) | |||||
| generated = list(BOOTSTRAP_DIR.glob(f'_build/dds{EXE_SUFFIX}')) | |||||
| assert len(generated) == 1, repr(generated) | |||||
| exe, = generated | |||||
| dest = prebuild_dir / exe.name | dest = prebuild_dir / exe.name | ||||
| exe.rename(dest) | exe.rename(dest) | ||||
| return dest | return dest |