Ben Murdoch | 097c5b2 | 2016-05-18 11:27:45 +0100 | [diff] [blame] | 1 | # 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 | } |