main: Skip unchanged blp files in batch-compile

Don't invalidate everything every time, otherwise we rebuild everything
even when no file has changed at all. With e.g. Vala this means more or
less rebuilding the entire project with no incremental builds.
This commit is contained in:
Alice Mikhaylenko 2025-06-22 03:03:09 +04:00 committed by James Westman
parent 0dc27cd01d
commit 60e704ee9a

View file

@ -170,6 +170,18 @@ class BlueprintApp:
add_typelib_search_path(typelib_path) add_typelib_search_path(typelib_path)
for file in opts.inputs: for file in opts.inputs:
path = os.path.join(
opts.output_dir,
os.path.relpath(os.path.splitext(file.name)[0] + ".ui", opts.input_dir),
)
if os.path.isfile(path):
in_time = os.path.getmtime(file.name)
out_time = os.path.getmtime(path)
if out_time >= in_time:
continue
data = file.read() data = file.read()
file_abs = os.path.abspath(file.name) file_abs = os.path.abspath(file.name)
input_dir_abs = os.path.abspath(opts.input_dir) input_dir_abs = os.path.abspath(opts.input_dir)
@ -186,12 +198,6 @@ class BlueprintApp:
for warning in warnings: for warning in warnings:
warning.pretty_print(file.name, data, stream=sys.stderr) warning.pretty_print(file.name, data, stream=sys.stderr)
path = os.path.join(
opts.output_dir,
os.path.relpath(
os.path.splitext(file.name)[0] + ".ui", opts.input_dir
),
)
os.makedirs(os.path.dirname(path), exist_ok=True) os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w") as file: with open(path, "w") as file:
file.write(xml) file.write(xml)