summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-10-15 23:59:12 +0200
committerGitHub <noreply@github.com>2021-10-15 23:59:12 +0200
commit96410f55b24e47af045e3ad31545331ce124d999 (patch)
tree1fb750112b184249fe7018c4fb010efb701f92fb
parentc96dcdf50a49fc695d3cae5b3e48c0b67110146e (diff)
parentc13348053129d4a356a0df1ada208809997799fe (diff)
Merge pull request #53860 from akien-mga/scons-end-gen-cpp-suffering
-rw-r--r--core/SCsub1
-rw-r--r--core/input/SCsub14
-rw-r--r--editor/SCsub1
-rw-r--r--methods.py13
4 files changed, 15 insertions, 14 deletions
diff --git a/core/SCsub b/core/SCsub
index 14dfa3487f..c12dd4e60e 100644
--- a/core/SCsub
+++ b/core/SCsub
@@ -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(
diff --git a/core/input/SCsub b/core/input/SCsub
index 740398b266..b12bf561de 100644
--- a/core/input/SCsub
+++ b/core/input/SCsub
@@ -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)
diff --git a/editor/SCsub b/editor/SCsub
index d149cc6273..e8d417319a 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -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")
diff --git a/methods.py b/methods.py
index 0e71adb40d..428405fb04 100644
--- a/methods.py
+++ b/methods.py
@@ -14,7 +14,7 @@ from SCons.Variables.BoolVariable import _text2bool
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)
@@ -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)