summaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/regen_checker.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/scripts/regen_checker.py')
-rw-r--r--mesonbuild/scripts/regen_checker.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/mesonbuild/scripts/regen_checker.py b/mesonbuild/scripts/regen_checker.py
index 80d9242b4..fa98f5989 100644
--- a/mesonbuild/scripts/regen_checker.py
+++ b/mesonbuild/scripts/regen_checker.py
@@ -14,10 +14,13 @@
import sys, os
import pickle, subprocess
+import typing as T
+from ..coredata import CoreData
+from ..backend.vs2010backend import RegenInfo
# This could also be used for XCode.
-def need_regen(regeninfo, regen_timestamp):
+def need_regen(regeninfo: RegenInfo, regen_timestamp: float) -> bool:
for i in regeninfo.depfiles:
curfile = os.path.join(regeninfo.build_dir, i)
curtime = os.stat(curfile).st_mtime
@@ -31,7 +34,7 @@ def need_regen(regeninfo, regen_timestamp):
Vs2010Backend.touch_regen_timestamp(regeninfo.build_dir)
return False
-def regen(regeninfo, meson_command, backend):
+def regen(regeninfo: RegenInfo, meson_command: T.List[str], backend: str) -> None:
cmd = meson_command + ['--internal',
'regenerate',
regeninfo.build_dir,
@@ -39,19 +42,22 @@ def regen(regeninfo, meson_command, backend):
'--backend=' + backend]
subprocess.check_call(cmd)
-def run(args):
+def run(args: T.List[str]) -> int:
private_dir = args[0]
dumpfile = os.path.join(private_dir, 'regeninfo.dump')
- coredata = os.path.join(private_dir, 'coredata.dat')
+ coredata_file = os.path.join(private_dir, 'coredata.dat')
with open(dumpfile, 'rb') as f:
regeninfo = pickle.load(f)
- with open(coredata, 'rb') as f:
+ assert isinstance(regeninfo, RegenInfo)
+ with open(coredata_file, 'rb') as f:
coredata = pickle.load(f)
+ assert isinstance(coredata, CoreData)
backend = coredata.get_builtin_option('backend')
+ assert isinstance(backend, str)
regen_timestamp = os.stat(dumpfile).st_mtime
if need_regen(regeninfo, regen_timestamp):
regen(regeninfo, coredata.meson_command, backend)
- sys.exit(0)
+ return 0
if __name__ == '__main__':
- run(sys.argv[1:])
+ sys.exit(run(sys.argv[1:]))