Roll src/third_party/skia f4e5995:23d4320
[chromium-blink-merge.git] / build / android / java_cpp_enum.gypi
blob3d6b3266af0861125da5953bc1476d63dcfebb1a
1 # Copyright 2014 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.
5 # This file is meant to be included into a target to provide an action
6 # to generate Java source files from a C++ header file containing annotated
7 # enum definitions using a Python script.
9 # To use this, create a gyp target with the following form:
10 #  {
11 #    'target_name': 'bitmap_format_java',
12 #    'type': 'none',
13 #    'variables': {
14 #      'source_file': 'ui/android/bitmap_format.h',
15 #    },
16 #    'includes': [ '../build/android/java_cpp_enum.gypi' ],
17 #  },
19 # Then have the gyp target which compiles the java code depend on the newly
20 # created target.
23   'variables': {
24     # Location where all generated Java sources will be placed.
25     'output_dir': '<(SHARED_INTERMEDIATE_DIR)/enums/<(_target_name)',
26     'generator_path': '<(DEPTH)/build/android/gyp/java_cpp_enum.py',
27     'generator_args': '--output_dir=<(output_dir) <(source_file)',
28   },
29   'direct_dependent_settings': {
30     'variables': {
31       # Ensure that the output directory is used in the class path
32       # when building targets that depend on this one.
33       'generated_src_dirs': [
34         '<(output_dir)/',
35       ],
36     },
37   },
38   'actions': [
39     {
40       'action_name': 'generate_java_constants',
41       'inputs': [
42         '<(DEPTH)/build/android/gyp/util/build_utils.py',
43         '<(generator_path)',
44         '<(source_file)',
45       ],
46       'outputs': [
47         # This is the main reason this is an action and not a rule. Gyp doesn't
48         # properly expand RULE_INPUT_PATH here and so it's impossible to
49         # calculate the list of outputs.
50         '<!@pymod_do_main(java_cpp_enum --print_output_only '
51             '<@(generator_args))',
52       ],
53       'action': [
54         'python', '<(generator_path)', '<@(generator_args)'
55       ],
56       'message': 'Generating Java from cpp header <(source_file)',
57     },
58   ],