1# Copyright (c) 2012 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 a target to handle shim headers
6# in a consistent manner. To use this the following variables need to be
7# defined:
8#   headers_root_path: string: path to directory containing headers
9#   header_filenames: list: list of header file names
10
11{
12  'variables': {
13    'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)',
14    'shim_generator_additional_args%': [],
15  },
16  'include_dirs++': [
17    '<(shim_headers_path)',
18  ],
19  'all_dependent_settings': {
20    # Repeating this with different numbers of plusses is unfortunately required
21    # to make sure that even if this include is inside nested conditions/etc, it
22    # still gets inserted at the beginning of the include_dirs list. See
23    # http://crbug.com/263818 for details.
24    'include_dirs+++': [
25      '<(shim_headers_path)',
26    ],
27    'include_dirs++++': [
28      '<(shim_headers_path)',
29    ],
30    'include_dirs+++++': [
31      '<(shim_headers_path)',
32    ],
33  },
34  'actions': [
35    {
36      'variables': {
37        'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py',
38        'generator_args': [
39          '--headers-root', '<(headers_root_path)',
40          '--output-directory', '<(shim_headers_path)',
41          '<@(shim_generator_additional_args)',
42          '<@(header_filenames)',
43        ],
44      },
45      'action_name': 'generate_<(_target_name)_shim_headers',
46      'inputs': [
47        '<(generator_path)',
48      ],
49      'outputs': [
50        '<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)',
51      ],
52      'action': ['python',
53                 '<(generator_path)',
54                 '<@(generator_args)',
55                 '--generate',
56      ],
57      'message': 'Generating <(_target_name) shim headers',
58    },
59  ],
60}
61