Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Unified Diff: site_scons/site_tools/chromium_builders.py

Issue 42340: Update the gyp Linux build: (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/net.gyp ('k') | skia/skia.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: site_scons/site_tools/chromium_builders.py
===================================================================
--- site_scons/site_tools/chromium_builders.py (revision 12226)
+++ site_scons/site_tools/chromium_builders.py (working copy)
@@ -52,6 +52,38 @@
else:
top[i] = new
+
+def FilterOut(self, **kw):
+ """Removes values from existing construction variables in an Environment.
+
+ The values to remove should be a list. For example:
+
+ self.FilterOut(CPPDEFINES=['REMOVE_ME', 'ME_TOO'])
+
+ Args:
+ self: Environment to alter.
+ kw: (Any other named arguments are values to remove).
+ """
+
+ kw = SCons.Environment.copy_non_reserved_keywords(kw)
+ for key, val in kw.items():
+ envval = self.get(key, None)
+ if envval is None:
+ # No existing variable in the environment, so nothing to delete.
+ continue
+
+ for vremove in val:
+ # Use while not if, so we can handle duplicates.
+ while vremove in envval:
+ envval.remove(vremove)
+
+ self[key] = envval
+
+ # TODO(sgk): SCons.Environment.Append() has much more logic to deal
+ # with various types of values. We should handle all those cases in here
+ # too. (If variable is a dict, etc.)
+
+
import __builtin__
__builtin__.ChromeFileList = ChromeFileList
@@ -119,6 +151,15 @@
result = env.ComponentLibrary(target, source, *args, **kw)
return result
+def ChromeLoadableModule(env, target, source, *args, **kw):
+ source = compilable_files(env, source)
+ if env.get('_GYP'):
+ result = env.LoadableModule(target, source, *args, **kw)
+ else:
+ kw['COMPONENT_STATIC'] = True
+ result = env.LoadableModule(target, source, *args, **kw)
+ return result
+
def ChromeStaticLibrary(env, target, source, *args, **kw):
source = compilable_files(env, source)
if env.get('_GYP'):
@@ -189,6 +230,7 @@
env.AddMethod(ChromeProgram)
env.AddMethod(ChromeTestProgram)
env.AddMethod(ChromeLibrary)
+ env.AddMethod(ChromeLoadableModule)
env.AddMethod(ChromeStaticLibrary)
env.AddMethod(ChromeSharedLibrary)
env.AddMethod(ChromeObject)
@@ -196,6 +238,8 @@
env.AddMethod(ChromeMSVSProject)
env.AddMethod(ChromeMSVSSolution)
+ env.AddMethod(FilterOut)
+
# Add the grit tool to the base environment because we use this a lot.
sys.path.append(env.Dir('$CHROME_SRC_DIR/tools/grit').abspath)
env.Tool('scons', toolpath=[env.Dir('$CHROME_SRC_DIR/tools/grit/grit')])
« no previous file with comments | « net/net.gyp ('k') | skia/skia.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698