From 13165805e647e8132beaeb87de5fe1e953b53a34 Mon Sep 17 00:00:00 2001 From: "joi@chromium.org" Date: Thu, 22 Sep 2011 19:14:28 +0000 Subject: Allow non-absolute path for variables. This fixes grit to do variable substitution in the resource_ids file correctly when it is invoked by ninja (which uses a relative path for this, whereas our gyp-generated make files use an absolute path). BUG=97420 TEST=this builds: ninja -C out/Debug chrome_extra_resources Review URL: http://codereview.chromium.org/7995013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102327 0039d316-1c4b-4281-b951-d872f2087c98 --- tools/grit/grit/grd_reader_unittest.py | 7 ++++--- tools/grit/grit/node/misc.py | 4 +++- tools/grit/grit/node/misc_unittest.py | 4 ++-- tools/grit/grit/testdata/resource_ids | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/grit/grit/grd_reader_unittest.py b/tools/grit/grit/grd_reader_unittest.py index 050f877c..f922a97 100644 --- a/tools/grit/grit/grd_reader_unittest.py +++ b/tools/grit/grit/grd_reader_unittest.py @@ -146,9 +146,10 @@ class GrdReaderUnittest(unittest.TestCase): grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..') root.AssignFirstIds( - # This file does not actually exist, but the path must match - # the path of the resource_ids file as it has SRCDIR set to "." - os.path.join(grit_root_dir, "grit/testdata/test.grd"), + # This file does not actually exist, but must use absolute + # path as resource_ids has '' for SRCDIR (see special handling + # in grit.node.misc). + os.path.join(grit_root_dir, "/test.grd"), os.path.join(grit_root_dir, "grit/testdata/resource_ids"), {}) messages_node = root.children[0].children[0] diff --git a/tools/grit/grit/node/misc.py b/tools/grit/grit/node/misc.py index 46eae17..5bc34b4 100644 --- a/tools/grit/grit/node/misc.py +++ b/tools/grit/grit/node/misc.py @@ -34,11 +34,13 @@ def _ReadFirstIdsFromFile(filename, defines): # 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'])) + # Special case for testing. + if first_ids_dict['SRCDIR'] == '': + src_root_dir = '' def ReplaceVariable(matchobj): for key, value in defines.iteritems(): if matchobj.group(1) == key: - value = os.path.join(src_root_dir, value) value = os.path.abspath(value)[len(src_root_dir) + 1:] return value return '' diff --git a/tools/grit/grit/node/misc_unittest.py b/tools/grit/grit/node/misc_unittest.py index 6e89465..855ff5b 100644 --- a/tools/grit/grit/node/misc_unittest.py +++ b/tools/grit/grit/node/misc_unittest.py @@ -35,8 +35,8 @@ class GritNodeUnittest(unittest.TestCase): src_dir, id_dict = misc._ReadFirstIdsFromFile( test_resource_ids, { - 'FOO': 'bar', - 'SHARED_INTERMEDIATE_DIR': 'out/Release/obj/gen', + 'FOO': '/bar', + 'SHARED_INTERMEDIATE_DIR': '/out/Release/obj/gen', }) self.assertEqual({}, id_dict.get('bar/file.grd', None)) self.assertEqual({}, diff --git a/tools/grit/grit/testdata/resource_ids b/tools/grit/grit/testdata/resource_ids index b230695..bd2db38 100644 --- a/tools/grit/grit/testdata/resource_ids +++ b/tools/grit/grit/testdata/resource_ids @@ -1,5 +1,5 @@ { - "SRCDIR": ".", + "SRCDIR": "", "test.grd": { "messages": [100, 10000], }, -- cgit v1.1