Skip to content

Commit 1c46ab3

Browse files
author
Vano
committed
test scons emitter for cached builds
1 parent 4df0c27 commit 1c46ab3

File tree

2 files changed

+22
-28
lines changed

2 files changed

+22
-28
lines changed

godot_cppscript.cmake

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -636,9 +636,6 @@ if __name__ != '__main__':
636636
return env.CppScript(sources, cppscript_env, *args, **kwargs)
637637
638638
class CppScriptBuilder():
639-
def __init__(self):
640-
self.builder = Builder(action=generate_header_scons, emitter=generate_header_emitter)
641-
642639
def __call__(self, env, source, call_args, cwd = os.getcwd(), *args, **kwargs):
643640
cppscript_env, *other = call_args
644641
# Convert scons variables to cppscript's env
@@ -673,9 +670,18 @@ if __name__ != '__main__':
673670
with open(godotcpp, 'w') as file:
674671
file.write(cppscript_env['code_format'].CPPSCRIPT_BODY.format(cppscript_env['header_name'].replace(' ', '_').replace('.', '_').upper()))
675672
673+
def generate_header_emitter(target, source, env):
674+
generated = [env.File(filename_to_gen_filename(str(i), env['cppscript_env'])) for i in source]
675+
676+
# To avoid generated sources deletion and re-parsing
677+
env.Precious(generated)
678+
679+
return generated, source
680+
676681
generator = Builder(action=generate, emitter=generate_emitter)(env)
677-
builder = self.builder(env, source=source, *other, *args, **kwargs)
678-
env.Depends(builder, generator)
682+
builder = Builder(action=generate_header_scons, emitter=generate_header_emitter) \\
683+
(env, source=source, *other, *args, **kwargs)
684+
#env.Depends(builder, generator)
679685
680686
return builder
681687
@@ -864,15 +870,6 @@ def cursor_get_field_type(cursor):
864870
865871
866872
# Builder
867-
def generate_header_emitter(target, source, env):
868-
generated = [env.File(filename_to_gen_filename(str(i), env['cppscript_env'])) for i in source]
869-
870-
# To avoid generated sources deletion and re-parsing
871-
env.Precious(generated)
872-
873-
return generated, source
874-
875-
876873
def generate_header_scons(target, source, env):
877874
if \"CPPSCRIPT_DEBUG\" in os.environ.keys():
878875
print(json.dumps(env['cppscript_env'], indent=2, default=lambda x: list(x) if type(x) is set else x))

godot_cppscript.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -619,9 +619,6 @@ def create_cppscript_target(env, sources, cppscript_env, *args, **kwargs):
619619
return env.CppScript(sources, cppscript_env, *args, **kwargs)
620620

621621
class CppScriptBuilder():
622-
def __init__(self):
623-
self.builder = Builder(action=generate_header_scons, emitter=generate_header_emitter)
624-
625622
def __call__(self, env, source, call_args, cwd = os.getcwd(), *args, **kwargs):
626623
cppscript_env, *other = call_args
627624
# Convert scons variables to cppscript's env
@@ -656,9 +653,18 @@ def generate(target, source, env):
656653
with open(godotcpp, 'w') as file:
657654
file.write(cppscript_env['code_format'].CPPSCRIPT_BODY.format(cppscript_env['header_name'].replace(' ', '_').replace('.', '_').upper()))
658655

656+
def generate_header_emitter(target, source, env):
657+
generated = [env.File(filename_to_gen_filename(str(i), env['cppscript_env'])) for i in source]
658+
659+
# To avoid generated sources deletion and re-parsing
660+
env.Precious(generated)
661+
662+
return generated, source
663+
659664
generator = Builder(action=generate, emitter=generate_emitter)(env)
660-
builder = self.builder(env, source=source, *other, *args, **kwargs)
661-
env.Depends(builder, generator)
665+
builder = Builder(action=generate_header_scons, emitter=generate_header_emitter) \
666+
(env, source=source, *other, *args, **kwargs)
667+
#env.Depends(builder, generator)
662668

663669
return builder
664670

@@ -847,15 +853,6 @@ def cursor_get_field_type(cursor):
847853

848854

849855
# Builder
850-
def generate_header_emitter(target, source, env):
851-
generated = [env.File(filename_to_gen_filename(str(i), env['cppscript_env'])) for i in source]
852-
853-
# To avoid generated sources deletion and re-parsing
854-
env.Precious(generated)
855-
856-
return generated, source
857-
858-
859856
def generate_header_scons(target, source, env):
860857
if "CPPSCRIPT_DEBUG" in os.environ.keys():
861858
print(json.dumps(env['cppscript_env'], indent=2, default=lambda x: list(x) if type(x) is set else x))

0 commit comments

Comments
 (0)