Add options to use scons caching for faster iteration.
Sort the sets in source generation so they are generated consistently between runs; otherwise caching is useless.pull/838/head
parent
204e504d68
commit
8e717acf48
|
@ -12,6 +12,9 @@ src/gen
|
||||||
logs/*
|
logs/*
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
# The default cache directory
|
||||||
|
cache/
|
||||||
|
|
||||||
# Binaries
|
# Binaries
|
||||||
*.o
|
*.o
|
||||||
*.os
|
*.os
|
||||||
|
|
|
@ -168,12 +168,19 @@ else:
|
||||||
json_api_file = os.path.join(os.getcwd(), env["headers_dir"], "extension_api.json")
|
json_api_file = os.path.join(os.getcwd(), env["headers_dir"], "extension_api.json")
|
||||||
|
|
||||||
bindings = env.GenerateBindings(
|
bindings = env.GenerateBindings(
|
||||||
env.Dir("."), [json_api_file, os.path.join(env["headers_dir"], "godot", "gdnative_interface.h")]
|
env.Dir("."),
|
||||||
|
[json_api_file, os.path.join(env["headers_dir"], "godot", "gdnative_interface.h"), "binding_generator.py"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
scons_cache_path = os.environ.get("SCONS_CACHE")
|
||||||
|
if scons_cache_path is not None:
|
||||||
|
CacheDir(scons_cache_path)
|
||||||
|
Decider("MD5")
|
||||||
|
|
||||||
# Forces bindings regeneration.
|
# Forces bindings regeneration.
|
||||||
if env["generate_bindings"]:
|
if env["generate_bindings"]:
|
||||||
AlwaysBuild(bindings)
|
AlwaysBuild(bindings)
|
||||||
|
NoCache(bindings)
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
env.Append(CPPPATH=[[env.Dir(d) for d in [env["headers_dir"], "include", os.path.join("gen", "include")]]])
|
env.Append(CPPPATH=[[env.Dir(d) for d in [env["headers_dir"], "include", os.path.join("gen", "include")]]])
|
||||||
|
|
|
@ -204,6 +204,11 @@ def generate_builtin_bindings(api, output_dir, build_config):
|
||||||
if type_name in used_classes:
|
if type_name in used_classes:
|
||||||
used_classes.remove(type_name)
|
used_classes.remove(type_name)
|
||||||
|
|
||||||
|
used_classes = list(used_classes)
|
||||||
|
used_classes.sort()
|
||||||
|
fully_used_classes = list(fully_used_classes)
|
||||||
|
fully_used_classes.sort()
|
||||||
|
|
||||||
with header_filename.open("w+") as header_file:
|
with header_filename.open("w+") as header_file:
|
||||||
header_file.write(generate_builtin_class_header(builtin_api, size, used_classes, fully_used_classes))
|
header_file.write(generate_builtin_class_header(builtin_api, size, used_classes, fully_used_classes))
|
||||||
|
|
||||||
|
@ -888,6 +893,11 @@ def generate_engine_classes_bindings(api, output_dir, use_template_get_node):
|
||||||
if type_name in used_classes:
|
if type_name in used_classes:
|
||||||
used_classes.remove(type_name)
|
used_classes.remove(type_name)
|
||||||
|
|
||||||
|
used_classes = list(used_classes)
|
||||||
|
used_classes.sort()
|
||||||
|
fully_used_classes = list(fully_used_classes)
|
||||||
|
fully_used_classes.sort()
|
||||||
|
|
||||||
with header_filename.open("w+") as header_file:
|
with header_filename.open("w+") as header_file:
|
||||||
header_file.write(
|
header_file.write(
|
||||||
generate_engine_class_header(class_api, used_classes, fully_used_classes, use_template_get_node)
|
generate_engine_class_header(class_api, used_classes, fully_used_classes, use_template_get_node)
|
||||||
|
|
Loading…
Reference in New Issue