Skip to content

Commit

Permalink
Merge pull request godotengine#53860 from akien-mga/scons-end-gen-cpp…
Browse files Browse the repository at this point in the history
…-suffering
  • Loading branch information
akien-mga authored Oct 15, 2021
2 parents c96dcdf + c133480 commit 96410f5
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
1 change: 1 addition & 0 deletions core/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ env.core_sources += thirdparty_obj
# Godot source files

env.add_source_files(env.core_sources, "*.cpp")
env.add_source_files(env.core_sources, "script_encryption_key.gen.cpp")

# Certificates
env.Depends(
Expand Down
14 changes: 5 additions & 9 deletions core/input/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,15 @@ import input_builders

# Order matters here. Higher index controller database files write on top of lower index database files.
controller_databases = [
"#core/input/gamecontrollerdb.txt",
"#core/input/godotcontrollerdb.txt",
"gamecontrollerdb.txt",
"godotcontrollerdb.txt",
]

env.Depends("#core/input/default_controller_mappings.gen.cpp", controller_databases)
env.CommandNoCache(
"#core/input/default_controller_mappings.gen.cpp",
gensource = env.CommandNoCache(
"default_controller_mappings.gen.cpp",
controller_databases,
env.Run(input_builders.make_default_controller_mappings, "Generating default controller mappings."),
)

env.add_source_files(env.core_sources, "*.cpp")

# Don't warn about duplicate entry here, we need it registered manually for first build,
# even if later builds will pick it up twice due to above *.cpp globbing.
env.add_source_files(env.core_sources, "#core/input/default_controller_mappings.gen.cpp", warn_duplicates=False)
env.add_source_files(env.core_sources, gensource)
1 change: 1 addition & 0 deletions editor/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ if env["tools"]:
)

env.add_source_files(env.editor_sources, "*.cpp")
env.add_source_files(env.editor_sources, "register_exporters.gen.cpp")

SConscript("debugger/SCsub")
SConscript("fileserver/SCsub")
Expand Down
13 changes: 8 additions & 5 deletions methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from platform_methods import run_in_subprocess


def add_source_files(self, sources, files, warn_duplicates=True):
def add_source_files(self, sources, files):
# Convert string to list of absolute paths (including expanding wildcard)
if isinstance(files, (str, bytes)):
# Keep SCons project-absolute path as they are (no wildcard support)
Expand All @@ -24,17 +24,20 @@ def add_source_files(self, sources, files, warn_duplicates=True):
return
files = [files]
else:
# Exclude .gen.cpp files from globbing, to avoid including obsolete ones.
# They should instead be added manually.
skip_gen_cpp = "*" in files
dir_path = self.Dir(".").abspath
files = sorted(glob.glob(dir_path + "/" + files))
if skip_gen_cpp:
files = [f for f in files if not f.endswith(".gen.cpp")]

# Add each path as compiled Object following environment (self) configuration
for path in files:
obj = self.Object(path)
if obj in sources:
if warn_duplicates:
print('WARNING: Object "{}" already included in environment sources.'.format(obj))
else:
continue
print('WARNING: Object "{}" already included in environment sources.'.format(obj))
continue
sources.append(obj)


Expand Down

0 comments on commit 96410f5

Please sign in to comment.