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

Unified Diff: tools/grit/grit/node/misc.py

Issue 7976026: Prepare for moving grit to its own open-source project. This mostly (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to review comments. Created 9 years, 3 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 | « tools/grit/grit/grit_runner.py ('k') | tools/grit/grit/node/misc_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/grit/grit/node/misc.py
diff --git a/tools/grit/grit/node/misc.py b/tools/grit/grit/node/misc.py
index e077b037e7026a5b7fc621cc117e75a2f99653f8..0815a246e127a1c43e81be29082ed0f2a3ccd6a8 100644
--- a/tools/grit/grit/node/misc.py
+++ b/tools/grit/grit/node/misc.py
@@ -20,15 +20,25 @@ from grit import util
import grit.format.rc_header
-def _ReadFirstIdsFromFile(filename, defines, src_root_dir):
+def _ReadFirstIdsFromFile(filename, defines):
'''Read the starting resource id values from |filename|. We also
expand variables of the form <(FOO) based on defines passed in on
- the command line.'''
+ the command line.
+
+ Returns a tuple, the absolute path of SRCDIR followed by the
+ first_ids dictionary.
+ '''
first_ids_dict = eval(open(filename).read())
+ # TODO(joi@chromium.org): It might make sense to make this a
+ # parameter of the .grd file rather than of the resource_ids file.
+ src_root_dir = os.path.abspath(os.path.join(os.path.dirname(filename),
+ first_ids_dict['SRCDIR']))
+
def ReplaceVariable(matchobj):
for key, value in defines.iteritems():
if matchobj.group(1) == key:
+ value = os.path.join(src_root_dir, value)
Evan Martin 2011/09/22 18:31:00 This change broke the Ninja build. What is the mo
value = os.path.abspath(value)[len(src_root_dir) + 1:]
return value
return ''
@@ -45,7 +55,7 @@ def _ReadFirstIdsFromFile(filename, defines, src_root_dir):
first_ids_dict[new_grd_filename] = first_ids_dict[grd_filename]
del(first_ids_dict[grd_filename])
- return first_ids_dict
+ return (src_root_dir, first_ids_dict)
class IfNode(base.Node):
@@ -303,27 +313,34 @@ class GritNode(base.Node):
if type(filename_or_stream) not in (str, unicode):
return
- # By default, we use the the file resources_ids next to grit.py
- # to determine what ids to assign to resources.
- grit_root_dir = os.path.abspath(os.path.join(os.path.dirname(
- os.path.abspath(__file__)), '..', '..'))
+ # TODO(joi@chromium.org): Get rid of this hack by making it
+ # possible to specify the resource_ids file to use as an attribute
+ # of the <grit> node in the .grd file, and doing so in all Chrome
+ # .grd files.
+ #
+ # For now, by default, we use the the file
+ # ../gritsettings/resource_ids relative to grit.py.
if not first_id_filename:
- first_id_filename = os.path.join(grit_root_dir, 'resource_ids')
+ first_id_filename = os.path.join(
+ os.path.dirname(__file__),
+ '..', '..', '..',
+ 'gritsettings', 'resource_ids')
first_ids = None
from grit.node import empty
for node in self.inorder():
if isinstance(node, empty.GroupingNode):
- # The checkout base directory is 2 directories up from grit.py.
- src_root_dir = os.path.dirname(os.path.dirname(grit_root_dir))
-
+ if not first_ids:
+ src_root_dir, first_ids = _ReadFirstIdsFromFile(first_id_filename,
+ defines)
filename = os.path.abspath(filename_or_stream)[
len(src_root_dir) + 1:]
filename = filename.replace('\\', '/')
- if not first_ids:
- first_ids = _ReadFirstIdsFromFile(first_id_filename, defines,
- src_root_dir)
+ # TODO(joi@chromium.org): Generalize this; users other than
+ # Chrome might want to use the first_id attribute; could check
+ # for first_ids == None to indicate not loaded, first_ids ==
+ # {} to indicate tried to load but found no resource_ids file.
if node.attrs['first_id'] != '':
raise Exception("Don't set the first_id attribute, update "
"%s instead." % first_id_filename)
« no previous file with comments | « tools/grit/grit/grit_runner.py ('k') | tools/grit/grit/node/misc_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698