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

Side by Side Diff: pylib/gyp/generator/ninja.py

Issue 9422025: Fix copy steps for win32 ninja (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
« 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 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 import copy 5 import copy
6 import gyp 6 import gyp
7 import gyp.common 7 import gyp.common
8 import gyp.system_test 8 import gyp.system_test
9 import gyp.xcode_emulation 9 import gyp.xcode_emulation
10 import os.path 10 import os.path
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 dir. Otherwise, |product_dir| is the relative path to the product 195 dir. Otherwise, |product_dir| is the relative path to the product
196 dir. 196 dir.
197 """ 197 """
198 198
199 PRODUCT_DIR = '$!PRODUCT_DIR' 199 PRODUCT_DIR = '$!PRODUCT_DIR'
200 if PRODUCT_DIR in path: 200 if PRODUCT_DIR in path:
201 if product_dir: 201 if product_dir:
202 path = path.replace(PRODUCT_DIR, product_dir) 202 path = path.replace(PRODUCT_DIR, product_dir)
203 else: 203 else:
204 path = path.replace(PRODUCT_DIR + '/', '') 204 path = path.replace(PRODUCT_DIR + '/', '')
205 path = path.replace(PRODUCT_DIR + '\\', '') 205 path = path.replace(PRODUCT_DIR + '\\', '')
Evan Martin 2012/02/20 22:18:19 The two above lines can now be removed, as the one
206 path = path.replace(PRODUCT_DIR, '.') 206 path = path.replace(PRODUCT_DIR, '.')
207 207
208 INTERMEDIATE_DIR = '$!INTERMEDIATE_DIR' 208 INTERMEDIATE_DIR = '$!INTERMEDIATE_DIR'
209 if INTERMEDIATE_DIR in path: 209 if INTERMEDIATE_DIR in path:
210 int_dir = self.GypPathToUniqueOutput('gen') 210 int_dir = self.GypPathToUniqueOutput('gen')
211 # GypPathToUniqueOutput generates a path relative to the product dir, 211 # GypPathToUniqueOutput generates a path relative to the product dir,
212 # so insert product_dir in front if it is provided. 212 # so insert product_dir in front if it is provided.
213 path = path.replace(INTERMEDIATE_DIR, 213 path = path.replace(INTERMEDIATE_DIR,
214 os.path.join(product_dir or '', int_dir)) 214 os.path.join(product_dir or '', int_dir))
215 215
216 return path 216 return os.path.normpath(path)
217 217
218 def ExpandRuleVariables(self, path, root, dirname, source, ext, name): 218 def ExpandRuleVariables(self, path, root, dirname, source, ext, name):
219 path = path.replace(generator_default_variables['RULE_INPUT_ROOT'], root) 219 path = path.replace(generator_default_variables['RULE_INPUT_ROOT'], root)
220 path = path.replace(generator_default_variables['RULE_INPUT_DIRNAME'], 220 path = path.replace(generator_default_variables['RULE_INPUT_DIRNAME'],
221 dirname) 221 dirname)
222 path = path.replace(generator_default_variables['RULE_INPUT_PATH'], source) 222 path = path.replace(generator_default_variables['RULE_INPUT_PATH'], source)
223 path = path.replace(generator_default_variables['RULE_INPUT_EXT'], ext) 223 path = path.replace(generator_default_variables['RULE_INPUT_EXT'], ext)
224 path = path.replace(generator_default_variables['RULE_INPUT_NAME'], name) 224 path = path.replace(generator_default_variables['RULE_INPUT_NAME'], name)
225 return path 225 return path
226 226
(...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after
1176 '&& touch $out') 1176 '&& touch $out')
1177 master_ninja.rule( 1177 master_ninja.rule(
1178 'stamp', 1178 'stamp',
1179 description='STAMP $out', 1179 description='STAMP $out',
1180 command='${postbuilds}touch $out') 1180 command='${postbuilds}touch $out')
1181 if flavor == 'win': 1181 if flavor == 'win':
1182 # TODO(scottmg): Copy fallback? 1182 # TODO(scottmg): Copy fallback?
1183 master_ninja.rule( 1183 master_ninja.rule(
1184 'copy', 1184 'copy',
1185 description='COPY $in $out', 1185 description='COPY $in $out',
1186 command='mklink /h $out $in >nul') 1186 command='cmd /c mklink /h $out $in >nul || mklink /h /j $out $in >nul')
1187 else: 1187 else:
1188 master_ninja.rule( 1188 master_ninja.rule(
1189 'copy', 1189 'copy',
1190 description='COPY $in $out', 1190 description='COPY $in $out',
1191 command='ln -f $in $out 2>/dev/null || (rm -rf $out && cp -af $in $out)') 1191 command='ln -f $in $out 2>/dev/null || (rm -rf $out && cp -af $in $out)')
1192 master_ninja.newline() 1192 master_ninja.newline()
1193 1193
1194 all_targets = set() 1194 all_targets = set()
1195 for build_file in params['build_files']: 1195 for build_file in params['build_files']:
1196 for target in gyp.common.AllTargets(target_list, target_dicts, build_file): 1196 for target in gyp.common.AllTargets(target_list, target_dicts, build_file):
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 1244
1245 user_config = params.get('generator_flags', {}).get('config', None) 1245 user_config = params.get('generator_flags', {}).get('config', None)
1246 if user_config: 1246 if user_config:
1247 GenerateOutputForConfig(target_list, target_dicts, data, params, 1247 GenerateOutputForConfig(target_list, target_dicts, data, params,
1248 user_config) 1248 user_config)
1249 else: 1249 else:
1250 config_names = target_dicts[target_list[0]]['configurations'].keys() 1250 config_names = target_dicts[target_list[0]]['configurations'].keys()
1251 for config_name in config_names: 1251 for config_name in config_names:
1252 GenerateOutputForConfig(target_list, target_dicts, data, params, 1252 GenerateOutputForConfig(target_list, target_dicts, data, params,
1253 config_name) 1253 config_name)
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