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

Side by Side Diff: pylib/gyp/msvs_emulation.py

Issue 1501673004: Error checking to clarify SYSTEMROOT errors (Closed) Base URL: https://chromium.googlesource.com/external/gyp.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 Google Inc. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
scottmg 2015/12/05 00:05:04 gyp is google, not chrome
brucedawson 2015/12/05 00:09:04 Ah. The presubmit warning asked me to change it. I
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """ 5 """
6 This module helps emulate Visual Studio 2008 behavior on top of other 6 This module helps emulate Visual Studio 2008 behavior on top of other
7 build systems, primarily ninja. 7 build systems, primarily ninja.
8 """ 8 """
9 9
10 import os 10 import os
11 import re 11 import re
12 import subprocess 12 import subprocess
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 'include', 954 'include',
955 'lib', 955 'lib',
956 'libpath', 956 'libpath',
957 'path', 957 'path',
958 'pathext', 958 'pathext',
959 'systemroot', 959 'systemroot',
960 'temp', 960 'temp',
961 'tmp', 961 'tmp',
962 ) 962 )
963 env = {} 963 env = {}
964 # This occasionally happens and leads to misleading SYSTEMROOT error messages
965 # if not caught here.
966 if output_of_set.count("=") == 0:
967 raise Exception("Invalid output_of_set. Value is:\n%s" % output_of_set)
964 for line in output_of_set.splitlines(): 968 for line in output_of_set.splitlines():
965 for envvar in envvars_to_save: 969 for envvar in envvars_to_save:
966 if re.match(envvar + '=', line.lower()): 970 if re.match(envvar + '=', line.lower()):
967 var, setting = line.split('=', 1) 971 var, setting = line.split('=', 1)
968 if envvar == 'path': 972 if envvar == 'path':
969 # Our own rules (for running gyp-win-tool) and other actions in 973 # Our own rules (for running gyp-win-tool) and other actions in
970 # Chromium rely on python being in the path. Add the path to this 974 # Chromium rely on python being in the path. Add the path to this
971 # python here so that if it's not in the path when ninja is run 975 # python here so that if it's not in the path when ninja is run
972 # later, python will still be found. 976 # later, python will still be found.
973 setting = os.path.dirname(sys.executable) + os.pathsep + setting 977 setting = os.path.dirname(sys.executable) + os.pathsep + setting
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 return cl_paths 1026 return cl_paths
1023 vs = GetVSVersion(generator_flags) 1027 vs = GetVSVersion(generator_flags)
1024 cl_paths = {} 1028 cl_paths = {}
1025 for arch in archs: 1029 for arch in archs:
1026 # Extract environment variables for subprocesses. 1030 # Extract environment variables for subprocesses.
1027 args = vs.SetupScript(arch) 1031 args = vs.SetupScript(arch)
1028 args.extend(('&&', 'set')) 1032 args.extend(('&&', 'set'))
1029 popen = subprocess.Popen( 1033 popen = subprocess.Popen(
1030 args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 1034 args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
1031 variables, _ = popen.communicate() 1035 variables, _ = popen.communicate()
1036 if popen.returncode != 0:
1037 raise Exception("'%s' failed with error %d" % (args, popen.returncode))
1032 env = _ExtractImportantEnvironment(variables) 1038 env = _ExtractImportantEnvironment(variables)
1033 1039
1034 # Inject system includes from gyp files into INCLUDE. 1040 # Inject system includes from gyp files into INCLUDE.
1035 if system_includes: 1041 if system_includes:
1036 system_includes = system_includes | OrderedSet( 1042 system_includes = system_includes | OrderedSet(
1037 env.get('INCLUDE', '').split(';')) 1043 env.get('INCLUDE', '').split(';'))
1038 env['INCLUDE'] = ';'.join(system_includes) 1044 env['INCLUDE'] = ';'.join(system_includes)
1039 1045
1040 env_block = _FormatAsEnvironmentBlock(env) 1046 env_block = _FormatAsEnvironmentBlock(env)
1041 f = open_out(os.path.join(toplevel_build_dir, 'environment.' + arch), 'wb') 1047 f = open_out(os.path.join(toplevel_build_dir, 'environment.' + arch), 'wb')
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 1084
1079 # To determine processor word size on Windows, in addition to checking 1085 # To determine processor word size on Windows, in addition to checking
1080 # PROCESSOR_ARCHITECTURE (which reflects the word size of the current 1086 # PROCESSOR_ARCHITECTURE (which reflects the word size of the current
1081 # process), it is also necessary to check PROCESSOR_ARCHITEW6432 (which 1087 # process), it is also necessary to check PROCESSOR_ARCHITEW6432 (which
1082 # contains the actual word size of the system when running thru WOW64). 1088 # contains the actual word size of the system when running thru WOW64).
1083 if ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or 1089 if ('64' in os.environ.get('PROCESSOR_ARCHITECTURE', '') or
1084 '64' in os.environ.get('PROCESSOR_ARCHITEW6432', '')): 1090 '64' in os.environ.get('PROCESSOR_ARCHITEW6432', '')):
1085 default_variables['MSVS_OS_BITS'] = 64 1091 default_variables['MSVS_OS_BITS'] = 64
1086 else: 1092 else:
1087 default_variables['MSVS_OS_BITS'] = 32 1093 default_variables['MSVS_OS_BITS'] = 32
OLDNEW
« 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