Skip to content

Commit 01f6ce0

Browse files
author
Vano
committed
ccache debug test
1 parent 1c46ab3 commit 01f6ce0

File tree

3 files changed

+76
-146
lines changed

3 files changed

+76
-146
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ env:
1212
GODOT_BASE_BRANCH: master
1313
# Used to select the version of Godot to run the tests with.
1414
GODOT_TEST_VERSION: master
15+
CCACHE_DEBUG: /dev/stdout
1516

1617
concurrency:
1718
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}

godot_cppscript.cmake

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -623,79 +623,6 @@ class code_format_cppscript_constexr_checks(code_format_godot_cpp):
623623
624624
###################
625625
626-
if __name__ != '__main__':
627-
# Ran as module from SConstruct
628-
629-
from SCons.Script import Glob
630-
from SCons.Builder import Builder
631-
632-
def create_cppscript_target(env, sources, cppscript_env, *args, **kwargs):
633-
if not 'CppScript' in env['BUILDERS'].keys():
634-
env.Append(BUILDERS={'CppScript' : CppScriptBuilder()})
635-
636-
return env.CppScript(sources, cppscript_env, *args, **kwargs)
637-
638-
class CppScriptBuilder():
639-
def __call__(self, env, source, call_args, cwd = os.getcwd(), *args, **kwargs):
640-
cppscript_env, *other = call_args
641-
# Convert scons variables to cppscript's env
642-
cppscript_env = {
643-
'header_name' : cppscript_env['header_name'],
644-
'header_dir' : resolve_path(str(cppscript_env['header_dir']), cwd),
645-
'gen_dir' : resolve_path(str(cppscript_env['gen_dir']), cwd),
646-
'compile_defs' : {f'{i[0]}={i[1]}' if type(i) is tuple else str(i) for i in cppscript_env.get('compile_defs', [])},
647-
'include_paths' : {resolve_path(str(i), cwd) for i in [cppscript_env['header_dir']] + cppscript_env.get('include_paths', [])},
648-
'auto_methods' : cppscript_env['auto_methods'],
649-
'code_format' : code_format_godot_cpp()
650-
if os.getenv(\"CPPSCRIPT_NO_CONSTEXPR_CHECKS\", False)
651-
else code_format_cppscript_constexr_checks()
652-
}
653-
env['cppscript_env'] = cppscript_env
654-
655-
656-
# Generate embedded headers once
657-
header_path = cppscript_env['header_dir']
658-
659-
bindings = os.path.join(header_path, 'cppscript_bindings.h')
660-
defs = os.path.join(header_path, 'cppscript_defs.h')
661-
godotcpp = os.path.join(header_path, cppscript_env['header_name'])
662-
def generate_emitter(target, source, env):
663-
return target + [env.File(bindings), env.File(defs), env.File(godotcpp)], source
664-
665-
def generate(target, source, env):
666-
with open(bindings, 'w') as file:
667-
file.write(CPPSCRIPT_BINDINGS_H)
668-
with open(defs, 'w') as file:
669-
file.write(CPPSCRIPT_DEFS_H)
670-
with open(godotcpp, 'w') as file:
671-
file.write(cppscript_env['code_format'].CPPSCRIPT_BODY.format(cppscript_env['header_name'].replace(' ', '_').replace('.', '_').upper()))
672-
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-
681-
generator = Builder(action=generate, emitter=generate_emitter)(env)
682-
builder = Builder(action=generate_header_scons, emitter=generate_header_emitter) \\
683-
(env, source=source, *other, *args, **kwargs)
684-
#env.Depends(builder, generator)
685-
686-
return builder
687-
688-
689-
def GlobRecursive(path, pattern, **kwargs):
690-
found = []
691-
for root, dirs, files in os.walk(path):
692-
if not os.path.basename(root).startswith('.'):
693-
found += Glob(root + '/' + pattern, **kwargs)
694-
else:
695-
dirs[:] = []
696-
697-
return found
698-
699626
CLASS_KEYWORDS = [
700627
'GCLASS',
701628
'GVIRTUAL_CLASS',

godot_cppscript.py

Lines changed: 75 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,81 @@
472472
"""
473473

474474

475+
# Ran as module from SConstruct
476+
from SCons.Script import Glob
477+
from SCons.Builder import Builder
478+
479+
def create_cppscript_target(env, sources, cppscript_env, *args, **kwargs):
480+
if not 'CppScript' in env['BUILDERS'].keys():
481+
env.Append(BUILDERS={'CppScript' : CppScriptBuilder()})
482+
483+
return env.CppScript(sources, cppscript_env, *args, **kwargs)
484+
485+
class CppScriptBuilder():
486+
def __call__(self, env, source, call_args, cwd = os.getcwd(), *args, **kwargs):
487+
cppscript_env, *other = call_args
488+
# Convert scons variables to cppscript's env
489+
cppscript_env = {
490+
'header_name' : cppscript_env['header_name'],
491+
'header_dir' : resolve_path(str(cppscript_env['header_dir']), cwd),
492+
'gen_dir' : resolve_path(str(cppscript_env['gen_dir']), cwd),
493+
'compile_defs' : {f'{i[0]}={i[1]}' if type(i) is tuple else str(i) for i in cppscript_env.get('compile_defs', [])},
494+
'include_paths' : {resolve_path(str(i), cwd) for i in [cppscript_env['header_dir']] + cppscript_env.get('include_paths', [])},
495+
'auto_methods' : cppscript_env['auto_methods'],
496+
'code_format' : code_format_godot_cpp()
497+
if os.getenv("CPPSCRIPT_NO_CONSTEXPR_CHECKS", False)
498+
else code_format_cppscript_constexr_checks()
499+
}
500+
env['cppscript_env'] = cppscript_env
501+
502+
503+
# Generate embedded headers once
504+
header_path = cppscript_env['header_dir']
505+
506+
bindings = os.path.join(header_path, 'cppscript_bindings.h')
507+
defs = os.path.join(header_path, 'cppscript_defs.h')
508+
godotcpp = os.path.join(header_path, cppscript_env['header_name'])
509+
def generate_emitter(target, source, env):
510+
generated = [env.File(bindings), env.File(defs), env.File(godotcpp)]
511+
env.NoCache(generated)
512+
return generated, source
513+
514+
def generate(target, source, env):
515+
with open(bindings, 'w') as file:
516+
file.write(CPPSCRIPT_BINDINGS_H)
517+
with open(defs, 'w') as file:
518+
file.write(CPPSCRIPT_DEFS_H)
519+
with open(godotcpp, 'w') as file:
520+
file.write(cppscript_env['code_format'].CPPSCRIPT_BODY.format(cppscript_env['header_name'].replace(' ', '_').replace('.', '_').upper()))
521+
522+
def generate_header_emitter(target, source, env):
523+
generated = [env.File(filename_to_gen_filename(str(i), env['cppscript_env'])) for i in source]
524+
525+
env.NoCached(generated)
526+
# To avoid generated sources deletion and re-parsing
527+
env.Precious(generated)
528+
529+
return generated, source
530+
531+
generator = Builder(action=generate, emitter=generate_emitter)(env)
532+
builder = Builder(action=generate_header_scons, emitter=generate_header_emitter) \
533+
(env, source=source, *other, *args, **kwargs)
534+
#env.Depends(builder, generator)
535+
536+
return builder
537+
538+
539+
def GlobRecursive(path, pattern, **kwargs):
540+
found = []
541+
for root, dirs, files in os.walk(path):
542+
if not os.path.basename(root).startswith('.'):
543+
found += Glob(root + '/' + pattern, **kwargs)
544+
else:
545+
dirs[:] = []
546+
547+
return found
548+
549+
475550
from clang.cindex import Index, TranslationUnit, CursorKind, TokenKind, AccessSpecifier
476551
import os, sys, json, hashlib, shutil
477552

@@ -606,79 +681,6 @@ def expand_property_info_list(cls, args):
606681

607682
###################
608683

609-
if __name__ != '__main__':
610-
# Ran as module from SConstruct
611-
612-
from SCons.Script import Glob
613-
from SCons.Builder import Builder
614-
615-
def create_cppscript_target(env, sources, cppscript_env, *args, **kwargs):
616-
if not 'CppScript' in env['BUILDERS'].keys():
617-
env.Append(BUILDERS={'CppScript' : CppScriptBuilder()})
618-
619-
return env.CppScript(sources, cppscript_env, *args, **kwargs)
620-
621-
class CppScriptBuilder():
622-
def __call__(self, env, source, call_args, cwd = os.getcwd(), *args, **kwargs):
623-
cppscript_env, *other = call_args
624-
# Convert scons variables to cppscript's env
625-
cppscript_env = {
626-
'header_name' : cppscript_env['header_name'],
627-
'header_dir' : resolve_path(str(cppscript_env['header_dir']), cwd),
628-
'gen_dir' : resolve_path(str(cppscript_env['gen_dir']), cwd),
629-
'compile_defs' : {f'{i[0]}={i[1]}' if type(i) is tuple else str(i) for i in cppscript_env.get('compile_defs', [])},
630-
'include_paths' : {resolve_path(str(i), cwd) for i in [cppscript_env['header_dir']] + cppscript_env.get('include_paths', [])},
631-
'auto_methods' : cppscript_env['auto_methods'],
632-
'code_format' : code_format_godot_cpp()
633-
if os.getenv("CPPSCRIPT_NO_CONSTEXPR_CHECKS", False)
634-
else code_format_cppscript_constexr_checks()
635-
}
636-
env['cppscript_env'] = cppscript_env
637-
638-
639-
# Generate embedded headers once
640-
header_path = cppscript_env['header_dir']
641-
642-
bindings = os.path.join(header_path, 'cppscript_bindings.h')
643-
defs = os.path.join(header_path, 'cppscript_defs.h')
644-
godotcpp = os.path.join(header_path, cppscript_env['header_name'])
645-
def generate_emitter(target, source, env):
646-
return target + [env.File(bindings), env.File(defs), env.File(godotcpp)], source
647-
648-
def generate(target, source, env):
649-
with open(bindings, 'w') as file:
650-
file.write(CPPSCRIPT_BINDINGS_H)
651-
with open(defs, 'w') as file:
652-
file.write(CPPSCRIPT_DEFS_H)
653-
with open(godotcpp, 'w') as file:
654-
file.write(cppscript_env['code_format'].CPPSCRIPT_BODY.format(cppscript_env['header_name'].replace(' ', '_').replace('.', '_').upper()))
655-
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-
664-
generator = Builder(action=generate, emitter=generate_emitter)(env)
665-
builder = Builder(action=generate_header_scons, emitter=generate_header_emitter) \
666-
(env, source=source, *other, *args, **kwargs)
667-
#env.Depends(builder, generator)
668-
669-
return builder
670-
671-
672-
def GlobRecursive(path, pattern, **kwargs):
673-
found = []
674-
for root, dirs, files in os.walk(path):
675-
if not os.path.basename(root).startswith('.'):
676-
found += Glob(root + '/' + pattern, **kwargs)
677-
else:
678-
dirs[:] = []
679-
680-
return found
681-
682684
CLASS_KEYWORDS = [
683685
'GCLASS',
684686
'GVIRTUAL_CLASS',

0 commit comments

Comments
 (0)