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 } 72