diff --git a/.gitignore b/.gitignore index 6ee4c378..3411e74c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ objdiff.json build.ninja .ninja_log* .ninja_lock +.ninja_deps /wibo diff --git a/tools/configure.py b/tools/configure.py index c9cda3d7..72261faa 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -4,6 +4,7 @@ import os from pathlib import Path import argparse import sys +import subprocess import ninja_syntax from get_platform import get_platform @@ -275,6 +276,14 @@ def main(): ) n.newline() + configure_cmdline = subprocess.list2cmdline(sys.argv[1:]) + n.rule( + name="configure", + command=f"{PYTHON} tools/configure.py {configure_cmdline}", + generator=True + ) + n.newline() + add_download_tool_builds(n) add_extract_build(n, project) add_delink_and_lcf_builds(n, project) @@ -282,6 +291,7 @@ def main(): add_mwld_and_rom_builds(n, project) add_check_builds(n, project) add_objdiff_builds(n, project) + add_configure_build(n, project) def add_download_tool_builds(n: ninja_syntax.Writer): @@ -561,6 +571,17 @@ def add_objdiff_builds(n: ninja_syntax.Writer, project: Project): n.newline() +def add_configure_build(n: ninja_syntax.Writer, project: Project): + this_file = str(Path(__file__).resolve()) + n.build( + outputs="build.ninja", + rule="configure", + implicit=[ + this_file, + ] + ) + + def get_config_files(game_config: Path, name: str) -> list[str]: return [ f"{root}/{file}"