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

Unified Diff: build/vs_toolchain.py

Issue 694353003: Get `gn gen` to succeed on Windows (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: add bison and gperf Created 6 years, 1 month 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
Index: build/vs_toolchain.py
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
index bdedd6fa8822f121da2687d338cbdf3f58140575..08dfbff4b874e84abcb504d64451f2a0ecca6643 100644
--- a/build/vs_toolchain.py
+++ b/build/vs_toolchain.py
@@ -5,6 +5,7 @@
import json
import os
import pipes
+import shlex
import shutil
import subprocess
import sys
@@ -18,7 +19,34 @@ sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
json_data_file = os.path.join(script_dir, 'win_toolchain.json')
-import gyp
+def NameValueListToDict(name_value_list):
scottmg 2014/11/03 22:28:34 This was also to avoid pulling gyp. Maybe I should
+ """
+ Takes an array of strings of the form 'NAME=VALUE' and creates a dictionary
+ of the pairs. If a string is simply NAME, then the value in the dictionary
+ is set to True. If VALUE can be converted to an integer, it is.
+ """
+ result = { }
+ for item in name_value_list:
+ tokens = item.split('=', 1)
+ if len(tokens) == 2:
+ # If we can make it an int, use that, otherwise, use the string.
+ try:
+ token_value = int(tokens[1])
+ except ValueError:
+ token_value = tokens[1]
+ # Set the variable to the supplied value.
+ result[tokens[0]] = token_value
+ else:
+ # No value supplied, treat it as a boolean and set it.
+ result[tokens[0]] = True
+ return result
+
+
+def ShlexEnv(env_name):
+ flags = os.environ.get(env_name, [])
+ if flags:
+ flags = shlex.split(flags)
+ return flags
def SetEnvironmentAndGetRuntimeDllDirs():
@@ -51,7 +79,7 @@ def SetEnvironmentAndGetRuntimeDllDirs():
# toolchain values in GYP_DEFINES, but don't want to override any
# otheroptions.express
# values there.
- gyp_defines_dict = gyp.NameValueListToDict(gyp.ShlexEnv('GYP_DEFINES'))
+ gyp_defines_dict = NameValueListToDict(ShlexEnv('GYP_DEFINES'))
gyp_defines_dict['windows_sdk_path'] = win8sdk
os.environ['GYP_DEFINES'] = ' '.join('%s=%s' % (k, pipes.quote(str(v)))
for k, v in gyp_defines_dict.iteritems())
« no previous file with comments | « build/toolchain/win/BUILD.gn ('k') | build/win/win_tool.py » ('j') | build/win/win_tool.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698