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

Unified Diff: win_toolchain/package_from_installed.py

Issue 1706423002: Let package_from_installed write the build env into json files in addition to SetEnv.cmd (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: wb Created 4 years, 10 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: win_toolchain/package_from_installed.py
diff --git a/win_toolchain/package_from_installed.py b/win_toolchain/package_from_installed.py
index e2785d722003ee44c3bc68f793fbc1bc72a441fe..500e51cc1fd8c0166d0b937416b683868c81a37f 100644
--- a/win_toolchain/package_from_installed.py
+++ b/win_toolchain/package_from_installed.py
@@ -21,7 +21,9 @@ useful as the resulting zip can't be redistributed, and most will presumably
have a Pro license anyway).
"""
+import collections
import glob
+import json
import optparse
import os
import platform
@@ -214,15 +216,15 @@ def GenerateSetEnvCmd(target_dir):
['..', '..', 'VC', 'atlmfc', 'include'],
])
# Common to x86 and x64
- env = [
+ env = collections.OrderedDict([
# Yuck: These two have a trailing \ character. No good way to represent this
# in an OS-independent way.
('VSINSTALLDIR', [['..', '..\\']]),
('VCINSTALLDIR', [['..', '..', 'VC\\']]),
('INCLUDE', include_dirs),
- ]
+ ])
# x86. Always use amd64_x86 cross, not x86 on x86.
- env_x86 = [
+ env_x86 = collections.OrderedDict([
('PATH', [
['..', '..', 'win_sdk', 'bin', 'x86'],
['..', '..', 'VC', 'bin', 'amd64_x86'],
@@ -234,9 +236,9 @@ def GenerateSetEnvCmd(target_dir):
['..', '..', 'win_sdk', 'Lib', WIN_VERSION, 'ucrt', 'x86'], # VS 2015
['..', '..', 'VC', 'atlmfc', 'lib'],
]),
- ]
+ ])
# x64.
- env_x64 = [
+ env_x64 = collections.OrderedDict([
('PATH', [
['..', '..', 'win_sdk', 'bin', 'x64'],
['..', '..', 'VC', 'bin', 'amd64'],
@@ -247,25 +249,32 @@ def GenerateSetEnvCmd(target_dir):
['..', '..', 'win_sdk', 'Lib', WIN_VERSION, 'ucrt', 'x64'], # VS 2015
['..', '..', 'VC', 'atlmfc', 'lib', 'amd64'],
]),
- ]
+ ])
def BatDirs(dirs):
return ';'.join(['%~dp0' + os.path.join(*d) for d in dirs])
- with open(os.path.join(target_dir, r'win_sdk\bin\SetEnv.cmd'), 'w') as f:
+ set_env_prefix = os.path.join(target_dir, r'win_sdk\bin\SetEnv')
+ with open(set_env_prefix + '.cmd', 'w') as f:
f.write('@echo off\n'
':: Generated by win_toolchain\\package_from_installed.py.\n')
- for var, dirs in env:
+ for var, dirs in env.iteritems():
f.write('set %s=%s\n' % (var, BatDirs(dirs)))
f.write('if "%1"=="/x64" goto x64\n')
- for var, dirs in env_x86:
+ for var, dirs in env_x86.iteritems():
f.write('set %s=%s%s\n' % (
var, BatDirs(dirs), ';%PATH%' if var == 'PATH' else ''))
f.write('goto :EOF\n')
f.write(':x64\n')
- for var, dirs in env_x64:
+ for var, dirs in env_x64.iteritems():
f.write('set %s=%s%s\n' % (
var, BatDirs(dirs), ';%PATH%' if var == 'PATH' else ''))
+ with open(set_env_prefix + '.x86.json', 'wb') as f:
+ assert not set(env.keys()) & set(env_x86.keys()), 'dupe keys'
+ json.dump(collections.OrderedDict(env.items() + env_x86.items()), f)
+ with open(set_env_prefix + '.x64.json', 'wb') as f:
+ assert not set(env.keys()) & set(env_x64.keys()), 'dupe keys'
+ json.dump(collections.OrderedDict(env.items() + env_x64.items()), f)
def AddEnvSetup(files):
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698