OLD | NEW |
---|---|
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("internal_rules.gni") | |
6 | |
5 # Declare a jni target | 7 # Declare a jni target |
6 # | 8 # |
7 # This target generates the native jni bindings for a set of .java files. | 9 # This target generates the native jni bindings for a set of .java files. |
8 # | 10 # |
9 # See base/android/jni_generator/jni_generator.py for more info about the | 11 # See base/android/jni_generator/jni_generator.py for more info about the |
10 # format of generating JNI bindings. | 12 # format of generating JNI bindings. |
11 # | 13 # |
12 # Variables | 14 # Variables |
13 # sources: list of .java files to generate jni for | 15 # sources: list of .java files to generate jni for |
14 # jni_package: subdirectory path for generated bindings | 16 # jni_package: subdirectory path for generated bindings |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
52 ] | 54 ] |
53 if (defined(invoker.jni_generator_jarjar_file)) { | 55 if (defined(invoker.jni_generator_jarjar_file)) { |
54 args += [ | 56 args += [ |
55 "--jarjar", rebase_path(jni_generator_jarjar_file) | 57 "--jarjar", rebase_path(jni_generator_jarjar_file) |
56 ] | 58 ] |
57 } | 59 } |
58 | 60 |
59 hard_dep = true | 61 hard_dep = true |
60 } | 62 } |
61 } | 63 } |
64 | |
65 # Declare a target for c-preprocessor-generated java files | |
66 # | |
67 # This target generates java files using the host C pre-processor. Each file in | |
68 # sources will be compiled using the C pre-processor. If include_path is | |
69 # specified, it will be passed (with --I) to the pre-processor. | |
70 # | |
71 # This target will create a single .srcjar. Adding this target to a library | |
72 # target's srcjar_deps will make the generated java files be included in that | |
73 # library's final outputs. | |
74 # | |
75 # Variables | |
76 # sources: list of files to be processed by the C pre-processor. For each | |
77 # file in sources, there will be one .java file in the final .srcjar. For a | |
78 # file named FooBar.template, a java file will be created with name | |
79 # FooBar.java. | |
80 # source_prereqs: additional compile-time dependencies. Any files | |
81 # `#include`-ed in the templates should be listed here. | |
82 # package_name: this will be the subdirectory for each .java file in the .srcj ar. | |
83 # | |
84 # Example | |
85 # java_cpp_template("foo_generated_enum") { | |
86 # sources = [ | |
87 # "android/java/templates/Foo.template", | |
88 # ] | |
89 # source_prereqs = [ | |
90 # "android/java/templates/native_foo_header.h", | |
91 # ] | |
92 # | |
93 # package_name = "org/chromium/base/library_loader" | |
94 # include_path = "android/java/templates" | |
95 # } | |
96 template("java_cpp_template") { | |
97 assert(defined(invoker.sources)) | |
98 package_name = invoker.package_name + "" | |
99 | |
100 if (defined(invoker.include_path)) { | |
101 include_path = invoker.include_path + "" | |
102 } else { | |
103 include_path = "//" | |
104 } | |
105 | |
106 base_gen_dir = "${root_gen_dir}/java_cpp_template/${target_name}/${package_nam e}" | |
brettw
2014/05/06 18:06:35
Can you put the string on the next line to make it
| |
107 gen_dir = "${base_gen_dir}/${package_name}" | |
108 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" | |
109 apply_gcc_outputs = process_file_template( | |
110 invoker.sources, gcc_template_output_pattern | |
111 ) | |
brettw
2014/05/06 18:06:35
) goes on prev line.
| |
112 | |
113 action_foreach("${target_name}__apply_gcc") { | |
114 script = "//build/android/gyp/gcc_preprocess.py" | |
115 if (defined(invoker.source_prereqs)) { | |
116 source_prereqs = invoker.source_prereqs + [] | |
117 } | |
118 | |
119 sources = invoker.sources | |
120 outputs = [ | |
121 gcc_template_output_pattern | |
122 ] | |
123 | |
124 args = [ | |
125 "--include-path", rebase_path(include_path), | |
126 "--output", rebase_path(gen_dir) + "/{{source_name_part}}.java", | |
127 "--template={{source}}", | |
128 ] | |
129 } | |
130 | |
131 srcjar_path = get_target_gen_path(":${target_name}", ".srcjar") | |
132 _zip("${target_name}__zip_srcjar") { | |
133 inputs = apply_gcc_outputs | |
134 output = srcjar_path | |
135 base_dir = base_gen_dir | |
136 } | |
137 | |
138 group(target_name) { | |
139 deps = [ | |
140 ":${target_name}__zip_srcjar" | |
141 ] | |
142 } | |
143 } | |
OLD | NEW |