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.
5 # This file is meant to be included into a target to provide a rule
6 # to build Java aidl files in a consistent manner.
8 # To use this, create a gyp target with the following form:
10 # 'target_name': 'aidl_aidl-file-name',
13 # 'aidl_interface_file': '<interface-path>/<interface-file>.aidl',
14 # 'aidl_import_include': '<(DEPTH)/<path-to-src-dir>',
17 # '<input-path1>/<input-file1>.aidl',
18 # '<input-path2>/<input-file2>.aidl',
21 # 'includes': ['<path-to-this-file>/java_aidl.gypi'],
25 # The generated java files will be:
26 # <(PRODUCT_DIR)/lib.java/<input-file1>.java
27 # <(PRODUCT_DIR)/lib.java/<input-file2>.java
31 # aidl_import_include - This should be an absolute path to your java src folder
32 # that contains the classes that are imported by your aidl files.
34 # TODO(cjhopman): dependents need to rebuild when this target's inputs have changed.
38 'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/aidl',
39 'aidl_import_include%': '',
40 'additional_aidl_arguments': [],
41 'additional_aidl_input_paths': [],
43 'direct_dependent_settings': {
45 'generated_src_dirs': ['<(intermediate_dir)/'],
49 ['aidl_import_include != ""', {
51 'additional_aidl_arguments': [ '-I<(aidl_import_include)' ],
52 'additional_aidl_input_paths': [ '<!@(find <(aidl_import_include) -name "*.java" | sort)' ],
58 'rule_name': 'compile_aidl',
61 '<(android_sdk)/framework.aidl',
62 '<(aidl_interface_file)',
63 '<@(additional_aidl_input_paths)',
66 '<(intermediate_dir)/<(RULE_INPUT_ROOT).java',
69 '<(android_sdk_tools)/aidl',
70 '-p<(android_sdk)/framework.aidl',
71 '-p<(aidl_interface_file)',
72 '<@(additional_aidl_arguments)',
74 '<(intermediate_dir)/<(RULE_INPUT_ROOT).java',