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

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

Issue 629543002: Add Ninja support for MSVS $(TargetExt), $(TargetFileName) and $(TargetPath) macros. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk
Patch Set: Reuse dictionary from MSVSUtil. Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pylib/gyp/generator/ninja.py » ('j') | 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) 2013 Google Inc. All rights reserved. 1 # Copyright (c) 2013 Google Inc. 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
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Utility functions shared amongst the Windows generators.""" 5 """Utility functions shared amongst the Windows generators."""
6 6
7 import copy 7 import copy
8 import os 8 import os
9 9
10 10
11 _TARGET_TYPE_EXT = { 11 # A dictionary mapping supported target types to extensions.
12 'executable': '.exe', 12 TARGET_TYPE_EXT = {
13 'loadable_module': '.dll', 13 'executable': 'exe',
14 'shared_library': '.dll', 14 'loadable_module': 'dll',
15 'shared_library': 'dll',
16 'static_library': 'lib',
15 } 17 }
16 18
17 19
18 def _GetLargePdbShimCcPath(): 20 def _GetLargePdbShimCcPath():
19 """Returns the path of the large_pdb_shim.cc file.""" 21 """Returns the path of the large_pdb_shim.cc file."""
20 this_dir = os.path.abspath(os.path.dirname(__file__)) 22 this_dir = os.path.abspath(os.path.dirname(__file__))
21 src_dir = os.path.abspath(os.path.join(this_dir, '..', '..')) 23 src_dir = os.path.abspath(os.path.join(this_dir, '..', '..'))
22 win_data_dir = os.path.join(src_dir, 'data', 'win') 24 win_data_dir = os.path.join(src_dir, 'data', 'win')
23 large_pdb_shim_cc = os.path.join(win_data_dir, 'large-pdb-shim.cc') 25 large_pdb_shim_cc = os.path.join(win_data_dir, 'large-pdb-shim.cc')
24 return large_pdb_shim_cc 26 return large_pdb_shim_cc
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 if pdb_path: 152 if pdb_path:
151 return pdb_path 153 return pdb_path
152 154
153 variables = target_dict.get('variables', {}) 155 variables = target_dict.get('variables', {})
154 pdb_path = variables.get('msvs_large_pdb_path', None) 156 pdb_path = variables.get('msvs_large_pdb_path', None)
155 if pdb_path: 157 if pdb_path:
156 return pdb_path 158 return pdb_path
157 159
158 160
159 pdb_base = target_dict.get('product_name', target_dict['target_name']) 161 pdb_base = target_dict.get('product_name', target_dict['target_name'])
160 pdb_base = '%s%s.pdb' % (pdb_base, _TARGET_TYPE_EXT[target_dict['type']]) 162 pdb_base = '%s.%s.pdb' % (pdb_base, TARGET_TYPE_EXT[target_dict['type']])
161 pdb_path = vars['PRODUCT_DIR'] + '/' + pdb_base 163 pdb_path = vars['PRODUCT_DIR'] + '/' + pdb_base
162 164
163 return pdb_path 165 return pdb_path
164 166
165 167
166 def InsertLargePdbShims(target_list, target_dicts, vars): 168 def InsertLargePdbShims(target_list, target_dicts, vars):
167 """Insert a shim target that forces the linker to use 4KB pagesize PDBs. 169 """Insert a shim target that forces the linker to use 4KB pagesize PDBs.
168 170
169 This is a workaround for targets with PDBs greater than 1GB in size, the 171 This is a workaround for targets with PDBs greater than 1GB in size, the
170 limit for the 1KB pagesize PDBs created by the linker by default. 172 limit for the 1KB pagesize PDBs created by the linker by default.
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 # the dependency generation works as expected in ninja. 261 # the dependency generation works as expected in ninja.
260 target_list.insert(0, full_copy_target_name) 262 target_list.insert(0, full_copy_target_name)
261 target_list.insert(0, full_shim_target_name) 263 target_list.insert(0, full_shim_target_name)
262 target_dicts[full_copy_target_name] = copy_dict 264 target_dicts[full_copy_target_name] = copy_dict
263 target_dicts[full_shim_target_name] = shim_dict 265 target_dicts[full_shim_target_name] = shim_dict
264 266
265 # Update the original target to depend on the shim target. 267 # Update the original target to depend on the shim target.
266 target_dict.setdefault('dependencies', []).append(full_shim_target_name) 268 target_dict.setdefault('dependencies', []).append(full_shim_target_name)
267 269
268 return (target_list, target_dicts) 270 return (target_list, target_dicts)
OLDNEW
« no previous file with comments | « no previous file | pylib/gyp/generator/ninja.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698