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

Side by Side Diff: tools/resources/find_used_resources.py

Issue 237663003: Make resource repacker work on Windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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
« build/common.gypi ('K') | « build/common.gypi ('k') | 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 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 6
7 import re 7 import re
8 import sys 8 import sys
9 9
10 usage = """find_used_resources.py 10 usage = """find_used_resources.py
11 11
12 Prints out (to sdout) the sorted list of resource ids that are part of unknown 12 Prints out (to sdout) the sorted list of resource ids that are part of unknown
13 pragma warning in the given build log (via stdin). 13 pragma warning in the given build log (via stdin).
14 14
15 This script is used to find the resources that are actually compiled in Chrome 15 This script is used to find the resources that are actually compiled in Chrome
16 in order to only include the needed strings/images in Chrome PAK files. The 16 in order to only include the needed strings/images in Chrome PAK files. The
17 script parses out the list of used resource ids. These resource ids show up in 17 script parses out the list of used resource ids. These resource ids show up in
18 the build output after building Chrome with gyp variable 18 the build output after building Chrome with gyp variable
19 enable_resource_whitelist_generation set to 1. This gyp flag causes the compiler 19 enable_resource_whitelist_generation set to 1. This gyp flag causes the compiler
20 to print out a UnknownPragma message every time a resource id is used. E.g.: 20 to print out a UnknownPragma message every time a resource id is used. E.g.:
21 foo.cc:22:0: warning: ignoring #pragma whitelisted_resource_12345 21 foo.cc:22:0: warning: ignoring #pragma whitelisted_resource_12345
22 [-Wunknown-pragmas] 22 [-Wunknown-pragmas]
23 23
24 On Windows, the message is simply a message via __pragma(message(...)).
Nico 2014/04/14 23:42:00 Hm, I wonder if we could do the same on non-win:
scottmg 2014/04/14 23:45:20 From the chromium-dev thread titled "generated_res
aurimas (slooooooooow) 2014/04/14 23:53:05 pragma message is not supported on gcc used to bui
25
24 """ 26 """
25 27
26 28
27 def GetResourceIdsInPragmaWarnings(input): 29 def GetResourceIdsInPragmaWarnings(input):
28 """Returns sorted set of resource ids that are inside unknown pragma warnings 30 """Returns sorted set of resource ids that are inside unknown pragma warnings
29 for the given input. 31 for the given input.
30 """ 32 """
31 used_resources = set() 33 used_resources = set()
32 unknown_pragma_warning_pattern = re.compile('warning: ignoring #pragma ' 34 unknown_pragma_warning_pattern = re.compile(
33 'whitelisted_resource_(?P<resource_id>[0-9]*) \[-Wunknown-pragmas\]') 35 'whitelisted_resource_(?P<resource_id>[0-9]*)')
34 for ln in input: 36 for ln in input:
35 match = unknown_pragma_warning_pattern.search(ln) 37 match = unknown_pragma_warning_pattern.search(ln)
36 if match: 38 if match:
37 resource_id = match.group('resource_id') 39 resource_id = match.group('resource_id')
38 used_resources.add(resource_id) 40 used_resources.add(resource_id)
39 return sorted(used_resources) 41 return sorted(used_resources)
40 42
41 def Main(): 43 def Main():
42 if len(sys.argv) != 1: 44 if len(sys.argv) != 1:
43 sys.stderr.write(usage) 45 sys.stderr.write(usage)
44 sys.exit(1) 46 sys.exit(1)
45 else: 47 else:
46 used_resources = GetResourceIdsInPragmaWarnings(sys.stdin) 48 used_resources = GetResourceIdsInPragmaWarnings(sys.stdin)
47 for rid in used_resources: 49 for rid in used_resources:
48 sys.stdout.write(rid + '\n') 50 sys.stdout.write(rid + '\n')
49 51
50 if __name__ == '__main__': 52 if __name__ == '__main__':
51 Main() 53 Main()
OLDNEW
« build/common.gypi ('K') | « build/common.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698