Skip to content

Commit 0a73df5

Browse files
committed
Check that precision of extension_api.json matches build options
1 parent 375c0d1 commit 0a73df5

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

binding_generator.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,15 @@ def generate_bindings(api_filepath, use_template_get_node, bits="64", precision=
278278
api = {}
279279
with open(api_filepath, encoding="utf-8") as api_file:
280280
api = json.load(api_file)
281-
_generate_bindings(api, use_template_get_node, bits, precision, output_dir)
281+
_generate_bindings(api, api_filepath, use_template_get_node, bits, precision, output_dir)
282282

283283

284-
def _generate_bindings(api, use_template_get_node, bits="64", precision="single", output_dir="."):
284+
def _generate_bindings(api, api_filepath, use_template_get_node, bits="64", precision="single", output_dir="."):
285+
if "precision" in api["header"] and precision != api["header"]["precision"]:
286+
raise Exception(
287+
f"Cannot do a precision={precision} build using '{api_filepath}' which was generated by Godot built with precision={api['header']['precision']}"
288+
)
289+
285290
target_dir = Path(output_dir) / "gen"
286291

287292
shutil.rmtree(target_dir, ignore_errors=True)

misc/scripts/check_get_file_list.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def test(profile_filepath=""):
1919
api = generate_trimmed_api(api_filepath, profile_filepath)
2020
_generate_bindings(
2121
api,
22+
api_filepath,
2223
use_template_get_node=False,
2324
bits=bits,
2425
precision=precision,

tools/godotcpp.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ def scons_generate_bindings(target, source, env):
154154

155155
_generate_bindings(
156156
api,
157+
str(source[0]),
157158
env["generate_template_get_node"],
158159
"32" if "32" in env["arch"] else "64",
159160
env["precision"],

0 commit comments

Comments
 (0)