summaryrefslogtreecommitdiff
path: root/methods.py
diff options
context:
space:
mode:
Diffstat (limited to 'methods.py')
-rw-r--r--methods.py35
1 files changed, 25 insertions, 10 deletions
diff --git a/methods.py b/methods.py
index 86a802bf5f..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)
@@ -56,6 +59,17 @@ def disable_warnings(self):
self.Append(CXXFLAGS=["-w"])
+def force_optimization_on_debug(self):
+ # 'self' is the environment
+ if self["target"] != "debug":
+ return
+
+ if self.msvc:
+ self.Append(CCFLAGS=["/O2"])
+ else:
+ self.Append(CCFLAGS=["-O3"])
+
+
def add_module_version_string(self, s):
self.module_version_string += "." + s
@@ -319,7 +333,7 @@ def disable_module(self):
self.disabled_modules.append(self.current_module)
-def module_check_dependencies(self, module, dependencies):
+def module_check_dependencies(self, module, dependencies, silent=False):
"""
Checks if module dependencies are enabled for a given module,
and prints a warning if they aren't.
@@ -333,11 +347,12 @@ def module_check_dependencies(self, module, dependencies):
missing_deps.append(dep)
if missing_deps != []:
- print(
- "Disabling '{}' module as the following dependencies are not satisfied: {}".format(
- module, ", ".join(missing_deps)
+ if not silent:
+ print(
+ "Disabling '{}' module as the following dependencies are not satisfied: {}".format(
+ module, ", ".join(missing_deps)
+ )
)
- )
return False
else:
return True