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

Side by Side Diff: grit/tool/build.py

Issue 1271303002: Fix of 466008: [GN] generate files block second-time ninja build (Closed) Base URL: https://chromium.googlesource.com/external/grit-i18n.git@master
Patch Set: Created 5 years, 4 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
« 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''The 'grit build' tool along with integration for this tool with the 6 '''The 'grit build' tool along with integration for this tool with the
7 SCons build system. 7 SCons build system.
8 ''' 8 '''
9 9
10 import codecs
10 import filecmp 11 import filecmp
11 import getopt 12 import getopt
12 import os 13 import os
13 import shutil 14 import shutil
14 import sys 15 import sys
15 16
16 from grit import grd_reader 17 from grit import grd_reader
17 from grit import util 18 from grit import util
18 from grit.tool import interface 19 from grit.tool import interface
19 from grit import shortcuts 20 from grit import shortcuts
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 if assert_output_files: 232 if assert_output_files:
232 if not self.CheckAssertedOutputFiles(assert_output_files): 233 if not self.CheckAssertedOutputFiles(assert_output_files):
233 return 2 234 return 2
234 235
235 if depfile and depdir: 236 if depfile and depdir:
236 self.GenerateDepfile(depfile, depdir, first_ids_file, depend_on_stamp) 237 self.GenerateDepfile(depfile, depdir, first_ids_file, depend_on_stamp)
237 238
238 return 0 239 return 0
239 240
240 def __init__(self, defines=None): 241 def __init__(self, defines=None):
241 # Default file-creation function is built-in open(). Only done to allow 242 # Default file-creation function is codecs.open(). Only done to allow
242 # overriding by unit test. 243 # overriding by unit test.
243 self.fo_create = open 244 self.fo_create = codecs.open
244 245
245 # key/value pairs of C-preprocessor like defines that are used for 246 # key/value pairs of C-preprocessor like defines that are used for
246 # conditional output of resources 247 # conditional output of resources
247 self.defines = defines or {} 248 self.defines = defines or {}
248 249
249 # self.res is a fully-populated resource tree if Run() 250 # self.res is a fully-populated resource tree if Run()
250 # has been called, otherwise None. 251 # has been called, otherwise None.
251 self.res = None 252 self.res = None
252 253
253 # Set to a list of filenames for the output nodes that are relative 254 # Set to a list of filenames for the output nodes that are relative
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 output_file = os.path.join(self.output_directory, 481 output_file = os.path.join(self.output_directory,
481 outputs[0].GetFilename()) 482 outputs[0].GetFilename())
482 483
483 output_file = os.path.relpath(output_file, depdir) 484 output_file = os.path.relpath(output_file, depdir)
484 # The path prefix to prepend to dependencies in the depfile. 485 # The path prefix to prepend to dependencies in the depfile.
485 prefix = os.path.relpath(os.getcwd(), depdir) 486 prefix = os.path.relpath(os.getcwd(), depdir)
486 deps_text = ' '.join([os.path.join(prefix, i) for i in infiles]) 487 deps_text = ' '.join([os.path.join(prefix, i) for i in infiles])
487 488
488 depfile_contents = output_file + ': ' + deps_text 489 depfile_contents = output_file + ': ' + deps_text
489 self.MakeDirectoriesTo(depfile) 490 self.MakeDirectoriesTo(depfile)
490 outfile = self.fo_create(depfile, 'wb') 491 outfile = self.fo_create(depfile, 'w', encoding='utf-8')
491 outfile.writelines(depfile_contents) 492 outfile.writelines(depfile_contents)
492 493
493 @staticmethod 494 @staticmethod
494 def MakeDirectoriesTo(file): 495 def MakeDirectoriesTo(file):
495 '''Creates directories necessary to contain |file|.''' 496 '''Creates directories necessary to contain |file|.'''
496 dir = os.path.split(file)[0] 497 dir = os.path.split(file)[0]
497 if not os.path.exists(dir): 498 if not os.path.exists(dir):
498 os.makedirs(dir) 499 os.makedirs(dir)
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