From e6ff63ce883c6631405f22b6630e3ab6455cc3a1 Mon Sep 17 00:00:00 2001 From: "tc@google.com" Date: Fri, 16 Jan 2009 21:20:14 +0000 Subject: Have net_resources.grd generate a .pak file too. Since the tld data is generated and included in the .pak file, we need to add a dependency in the SCons build. Making the corresponding changes to mac/win is harder, so punting for now. Review URL: http://codereview.chromium.org/18127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8220 0039d316-1c4b-4281-b951-d872f2087c98 --- tools/grit/grit/format/data_pack.py | 3 ++- tools/grit/grit/node/include.py | 12 ++++++++++-- tools/grit/grit/tool/build.py | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) mode change 100644 => 100755 tools/grit/grit/format/data_pack.py (limited to 'tools/grit') diff --git a/tools/grit/grit/format/data_pack.py b/tools/grit/grit/format/data_pack.py old mode 100644 new mode 100755 index 1f11a9b..797c23e --- a/tools/grit/grit/format/data_pack.py +++ b/tools/grit/grit/format/data_pack.py @@ -22,12 +22,13 @@ class DataPack(interface.ItemFormatter): def Format(self, item, lang='en', begin_item=True, output_dir='.'): if not begin_item: return '' + assert isinstance(item, misc.ReleaseNode) nodes = DataPack.GetDataNodes(item) data = {} for node in nodes: - id, value = node.GetDataPackPair() + id, value = node.GetDataPackPair(output_dir) data[id] = value return DataPack.WriteDataPack(data) diff --git a/tools/grit/grit/node/include.py b/tools/grit/grit/node/include.py index d50e7a6..6ff560a 100644 --- a/tools/grit/grit/node/include.py +++ b/tools/grit/grit/node/include.py @@ -6,6 +6,7 @@ '''Handling of the element. ''' +import os import grit.format.rc_header import grit.format.rc @@ -46,16 +47,23 @@ class IncludeNode(base.Node): ''' return self.FilenameToOpen() - def GetDataPackPair(self): + def GetDataPackPair(self, output_dir): '''Returns a (id, string) pair that represents the resource id and raw bytes of the data. This is used to generate the data pack data file. ''' from grit.format import rc_header id_map = rc_header.Item.tids_ id = id_map[self.GetTextualIds()[0]] - file = open(self.FilenameToOpen(), 'rb') + filename = self.FilenameToOpen() + if not os.path.exists(filename): + # Try to open the file relative to the output dir if it's not relative to + # the grd file. + filename = os.path.join(output_dir, self.attrs['file']) + + file = open(filename, 'rb') data = file.read() file.close() + return id, data # static method diff --git a/tools/grit/grit/tool/build.py b/tools/grit/grit/tool/build.py index 30d2fb3..e2115ee 100644 --- a/tools/grit/grit/tool/build.py +++ b/tools/grit/grit/tool/build.py @@ -156,6 +156,14 @@ are exported to translation interchange files (e.g. XMB files), etc. for output in self.res.GetOutputFiles(): self.VerboseOut('Creating %s...' % output.GetFilename()) + + # Don't build data package files on mac/windows because it's not used and + # there are project dependency issues. We still need to create the file + # to satisfy build dependencies. + if output.GetType() == 'data_package' and sys.platform != 'linux2': + f = open(output.GetOutputFilename(), 'wb') + f.close() + # Microsoft's RC compiler can only deal with single-byte or double-byte # files (no UTF-8), so we make all RC files UTF-16 to support all # character sets. -- cgit v1.1