Skip to content

Commit 40e6575

Browse files
committed
Check that precision of extension_api.json matches build options
(cherry picked from commit 0a73df5)
1 parent 2dee0cc commit 40e6575

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
@@ -153,6 +153,7 @@ def scons_generate_bindings(target, source, env):
153153

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

0 commit comments

Comments
 (0)