blob: b24f0f8d715cd0333db9b9cb9e16a7635657878a [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# Copyright (c) 2011 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5# This file is meant to be included into an action to invoke grit in a
6# consistent manner. To use this the following variables need to be
7# defined:
8# grit_grd_file: string: grd file path
9# grit_out_dir: string: the output directory path
10
11# It would be really nice to do this with a rule instead of actions, but it
12# would need to determine inputs and outputs via grit_info on a per-file
13# basis. GYP rules don't currently support that. They could be extended to
14# do this, but then every generator would need to be updated to handle this.
15
16{
17 'variables': {
18 'grit_cmd': ['python', '<(DEPTH)/tools/grit/grit.py'],
19 'grit_resource_ids%': '<(DEPTH)/tools/gritsettings/resource_ids',
20 # This makes it possible to add more defines in specific targets,
21 # instead of build/common.gypi .
22 'grit_additional_defines%': [],
23 'grit_rc_header_format%': [],
24 'grit_whitelist%': '',
25
26 'conditions': [
27 # These scripts can skip writing generated files if they are identical
28 # to the already existing files, which avoids further build steps, like
29 # recompilation. However, a dependency (earlier build step) having a
30 # newer timestamp than an output (later build step) confuses some build
31 # systems, so only use this on ninja, which explicitly supports this use
32 # case (gyp turns all actions into ninja restat rules).
33 ['"<(GENERATOR)"=="ninja"', {
34 'write_only_new': '1',
35 }, {
36 'write_only_new': '0',
37 }],
38 ],
39 },
40 'conditions': [
41 ['"<(grit_whitelist)"==""', {
42 'variables': {
43 'grit_whitelist_flag': [],
44 }
45 }, {
46 'variables': {
47 'grit_whitelist_flag': ['-w', '<(grit_whitelist)'],
48 }
49 }]
50 ],
51 'inputs': [
52 '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
53 '<@(grit_whitelist_flag) --inputs <(grit_grd_file) '
54 '-f "<(grit_resource_ids)")',
55 ],
56 'outputs': [
57 '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
58 '<@(grit_whitelist_flag) --outputs \'<(grit_out_dir)\' '
59 '<(grit_grd_file) -f "<(grit_resource_ids)")',
60 ],
61 'action': ['<@(grit_cmd)',
62 '-i', '<(grit_grd_file)', 'build',
63 '-f', '<(grit_resource_ids)',
64 '-o', '<(grit_out_dir)',
65 '--write-only-new=<(write_only_new)',
66 '<@(grit_defines)',
67 '<@(grit_whitelist_flag)',
68 '<@(grit_additional_defines)',
69 '<@(grit_rc_header_format)'],
70 'message': 'Generating resources from <(grit_grd_file)',
71}