summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2021-10-15 21:59:11 +0200
committerRémi Verschelde <rverschelde@gmail.com>2021-10-15 22:14:11 +0200
commitc13348053129d4a356a0df1ada208809997799fe (patch)
treecf00036a5834e76eee0eda0be4e7ad8232544a61 /core
parent08d1ce718d5d1845c163f016b4083210136c1248 (diff)
SCons: List `.gen.cpp` sources explicitly to avoid globbing errors
Whenever we change the name (or remove) generated cpp files with the `.gen.cpp` extension, users run into build issues when switching between branches (i.e. switching before and after the name change/removal). This is because we glob `*.cpp` so if a now-obsolete file from a previous build is present, we'll include it too, potentially leading to bugs or compilation failure (due to missing headers or invalid code). So globbing patterns in `add_source_files` will now skip files ending with `.gen.cpp`, which should instead be passed explicitly where they're used.
Diffstat (limited to 'core')
-rw-r--r--core/SCsub1
-rw-r--r--core/input/SCsub14
2 files changed, 6 insertions, 9 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)