# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This file is meant to be included into an action to invoke grit in a
# consistent manner. To use this the following variables need to be
# defined:
#   grit_grd_file: string: grd file path
#   grit_out_dir: string: the output directory path

# It would be really nice to do this with a rule instead of actions, but it
# would need to determine inputs and outputs via grit_info on a per-file
# basis. GYP rules don't currently support that. They could be extended to
# do this, but then every generator would need to be updated to handle this.

{
  'variables': {
    'grit_cmd': ['python', '<(DEPTH)/tools/grit/grit.py'],
    'grit_resource_ids%': '<(DEPTH)/tools/gritsettings/resource_ids',
    # This makes it possible to add more defines in specific targets,
    # instead of build/common.gypi .
    'grit_additional_defines%': [],
    'grit_rc_header_format%': [],
    'grit_whitelist%': '',

    'conditions': [
      # These scripts can skip writing generated files if they are identical
      # to the already existing files, which avoids further build steps, like
      # recompilation. However, a dependency (earlier build step) having a
      # newer timestamp than an output (later build step) confuses some build
      # systems, so only use this on ninja, which explicitly supports this use
      # case (gyp turns all actions into ninja restat rules).
      ['"<(GENERATOR)"=="ninja"', {
        'write_only_new': '1',
      }, {
        'write_only_new': '0',
      }],
    ],
  },
  'conditions': [
    ['"<(grit_whitelist)"==""', {
      'variables': {
        'grit_whitelist_flag': [],
      }
    }, {
      'variables': {
        'grit_whitelist_flag': ['-w', '<(grit_whitelist)'],
      }
    }]
  ],
  'inputs': [
    '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
        '--inputs <(grit_grd_file) -f "<(grit_resource_ids)")',
  ],
  'outputs': [
    '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
        '--outputs \'<(grit_out_dir)\' '
        '<(grit_grd_file) -f "<(grit_resource_ids)")',
  ],
  'action': ['<@(grit_cmd)',
             '-i', '<(grit_grd_file)', 'build',
             '-f', '<(grit_resource_ids)',
             '-o', '<(grit_out_dir)',
             '--write-only-new=<(write_only_new)',
             '<@(grit_defines)',
             '<@(grit_whitelist_flag)',
             '<@(grit_additional_defines)',
             '<@(grit_rc_header_format)'],
  'message': 'Generating resources from <(grit_grd_file)',
}
