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

Unified Diff: build/gyp_chromium

Issue 111783003: Move all GYP->GN argument conversion to Python. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | « no previous file | tools/gn/command_gyp.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/gyp_chromium
diff --git a/build/gyp_chromium b/build/gyp_chromium
index 03308589c8f0fd7537a83300c94c65d93665970f..e4acd8850ac9ebee633dd441e7d4d6da6f59ef57 100755
--- a/build/gyp_chromium
+++ b/build/gyp_chromium
@@ -78,7 +78,8 @@ def EscapeStringForGN(s):
return '"' + s.replace('$', '\\$').replace('"', '\\"') + '"'
-def GetVarsStringForGN(supplemental_files):
+def GetGypVarsForGN(supplemental_files):
+ """Returns a dictionary of all GYP vars that we will be passing to GN."""
vars_dict = {}
for supplement in supplemental_files:
@@ -99,15 +100,33 @@ def GetVarsStringForGN(supplemental_files):
# Some GYP variables have hyphens, which we don't support.
key = FormatKeyForGN(tokens[0])
if len(tokens) == 2:
- vars_dict[key] = EscapeStringForGN(tokens[1])
+ vars_dict[key] = tokens[1]
else:
# No value supplied, treat it as a boolean and set it.
vars_dict[key] = 'true'
- vars_string = ''
- for v in vars_dict:
- vars_string = vars_string + v + '=' + vars_dict[v] + ' '
- return vars_string.strip() # Remove trailing space.
+ return vars_dict
+
+
+def GetArgsStringForGN(supplemental_files):
+ """Returns the args to pass to GN.
+ Based on a subset of the GYP variables that have been rewritten a bit."""
+
+ vars_dict = GetGypVarsForGN(supplemental_files)
+ gn_args = ''
+
+ # Map "component=shared_library" to "is_component_build=true"
+ if "component" in vars_dict and vars_dict["component"] == "shared_library":
+ gn_args += ' is_component_build=true'
+
+ # These string arguments get passed directly.
+ for v in ['window_sdk_path']:
+ if v in vars_dict:
+ gn_args += ' ' + v + '="' + EscapeStringForGN(vars_dict[v]) + '"'
+
+ # Set the GYP flag so BUILD files know they're being invoked in GYP mode.
+ gn_args += ' is_gyp=true'
+ return gn_args.strip()
def additional_include_files(supplemental_files, args=[]):
@@ -161,15 +180,13 @@ def RunGN(supplemental_includes):
return False
print 'Generating gyp files from GN...'
- gyp_vars = GetVarsStringForGN(supplemental_includes)
# Need to pass both the source root (the bots don't run this command from
# within the source tree) as well as set the is_gyp value so the BUILD files
# to know they're being run under GYP.
args = [gnpath, 'gyp', '-q',
'--root=' + chrome_src,
- '--args=is_gyp=true',
- '--gyp_vars=' + gyp_vars + '']
+ '--args=' + GetArgsStringForGN(supplemental_includes)]
return subprocess.call(args) == 0
« no previous file with comments | « no previous file | tools/gn/command_gyp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698