summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-05-17 08:59:42 +0200
committerAetias <aetias@outlook.com>2025-05-17 08:59:42 +0200
commit471f69e15f448467710d4549f343cb88cac0ffa6 (patch)
tree918437037f6e22f45d3eb41e9d6d1b72ddbfbe5f
parentd542bcb8f12823cdee1ecf1f3ff0df98406c04ac (diff)
Reconfigure if configure.py was modified
-rw-r--r--.gitignore1
-rwxr-xr-xtools/configure.py21
2 files changed, 22 insertions, 0 deletions
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}"