Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(415)

Side by Side Diff: build/config/android/rules.gni

Issue 341823003: Add depfile support to android build scripts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « build/config/android/internal_rules.gni ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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("config.gni") 5 import("config.gni")
6 import("internal_rules.gni") 6 import("internal_rules.gni")
7 7
8 # Declare a jni target 8 # Declare a jni target
9 # 9 #
10 # This target generates the native jni bindings for a set of .java files. 10 # This target generates the native jni bindings for a set of .java files.
(...skipping 18 matching lines...) Expand all
29 assert(defined(invoker.jni_package)) 29 assert(defined(invoker.jni_package))
30 jni_package = invoker.jni_package 30 jni_package = invoker.jni_package
31 base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}" 31 base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}"
32 jni_output_dir = "${base_output_dir}/jni" 32 jni_output_dir = "${base_output_dir}/jni"
33 33
34 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h" 34 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h"
35 35
36 foreach_target_name = "${target_name}__jni_gen" 36 foreach_target_name = "${target_name}__jni_gen"
37 action_foreach(foreach_target_name) { 37 action_foreach(foreach_target_name) {
38 script = "//base/android/jni_generator/jni_generator.py" 38 script = "//base/android/jni_generator/jni_generator.py"
39 depfile = "$target_gen_dir/$target_name.{{source_name_part}}.d"
39 sources = invoker.sources 40 sources = invoker.sources
40 source_prereqs = [ jni_generator_include ] 41 source_prereqs = [ jni_generator_include ]
41 outputs = [ 42 outputs = [
43 depfile,
42 "${jni_output_dir}/{{source_name_part}}_jni.h" 44 "${jni_output_dir}/{{source_name_part}}_jni.h"
43 ] 45 ]
44 46
45 args = [ 47 args = [
48 "--depfile", rebase_path(depfile, root_build_dir),
46 "--input_file={{source}}", 49 "--input_file={{source}}",
47 "--optimize_generation=1", 50 "--optimize_generation=1",
48 "--ptr_type=long", 51 "--ptr_type=long",
49 "--output_dir", rebase_path(jni_output_dir, root_build_dir), 52 "--output_dir", rebase_path(jni_output_dir, root_build_dir),
50 "--includes", rebase_path(jni_generator_include, "//"), 53 "--includes", rebase_path(jni_generator_include, "//"),
51 ] 54 ]
52 if (defined(invoker.jni_generator_jarjar_file)) { 55 if (defined(invoker.jni_generator_jarjar_file)) {
53 args += [ 56 args += [
54 "--jarjar", rebase_path(jni_generator_jarjar_file, root_build_dir), 57 "--jarjar", rebase_path(jni_generator_jarjar_file, root_build_dir),
55 ] 58 ]
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 # TODO(cjhopman): make jni_generator.py support generating jni for multiple 119 # TODO(cjhopman): make jni_generator.py support generating jni for multiple
117 # .class files from a .jar. 120 # .class files from a .jar.
118 jni_actions = [] 121 jni_actions = []
119 foreach(class, invoker.classes) { 122 foreach(class, invoker.classes) {
120 classname_list = process_file_template( 123 classname_list = process_file_template(
121 [class], "{{source_name_part}}") 124 [class], "{{source_name_part}}")
122 classname = classname_list[0] 125 classname = classname_list[0]
123 jni_target_name = "${target_name}__jni_${classname}" 126 jni_target_name = "${target_name}__jni_${classname}"
124 jni_actions += [ ":$jni_target_name" ] 127 jni_actions += [ ":$jni_target_name" ]
125 action(jni_target_name) { 128 action(jni_target_name) {
129 depfile = "$target_gen_dir/$target_name.d"
126 script = "//base/android/jni_generator/jni_generator.py" 130 script = "//base/android/jni_generator/jni_generator.py"
127 sources = [ 131 sources = [
128 jni_generator_include, 132 jni_generator_include,
129 jar_file, 133 jar_file,
130 ] 134 ]
131 outputs = [ 135 outputs = [
136 depfile,
132 "${jni_output_dir}/${classname}_jni.h" 137 "${jni_output_dir}/${classname}_jni.h"
133 ] 138 ]
134 139
135 args = [ 140 args = [
141 "--depfile", rebase_path(depfile, root_build_dir),
136 "--jar_file", rebase_path(jar_file, root_build_dir), 142 "--jar_file", rebase_path(jar_file, root_build_dir),
137 "--input_file", class, 143 "--input_file", class,
138 "--optimize_generation=1", 144 "--optimize_generation=1",
139 "--ptr_type=long", 145 "--ptr_type=long",
140 "--output_dir", rebase_path(jni_output_dir, root_build_dir), 146 "--output_dir", rebase_path(jni_output_dir, root_build_dir),
141 "--includes", rebase_path(jni_generator_include, "//"), 147 "--includes", rebase_path(jni_generator_include, "//"),
142 ] 148 ]
143 } 149 }
144 } 150 }
145 151
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 include_path = invoker.include_path + "" 204 include_path = invoker.include_path + ""
199 } else { 205 } else {
200 include_path = "//" 206 include_path = "//"
201 } 207 }
202 208
203 action_foreach("${target_name}__apply_gcc") { 209 action_foreach("${target_name}__apply_gcc") {
204 script = "//build/android/gyp/gcc_preprocess.py" 210 script = "//build/android/gyp/gcc_preprocess.py"
205 if (defined(invoker.source_prereqs)) { 211 if (defined(invoker.source_prereqs)) {
206 source_prereqs = invoker.source_prereqs + [] 212 source_prereqs = invoker.source_prereqs + []
207 } 213 }
214 depfile = "${target_gen_dir}/${target_name}.d"
208 215
209 sources = invoker.sources 216 sources = invoker.sources
210 217
211 gen_dir = "${target_gen_dir}/${package_name}" 218 gen_dir = "${target_gen_dir}/${package_name}"
212 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" 219 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java"
213 220
214 outputs = [ 221 outputs = [
222 depfile,
215 gcc_template_output_pattern 223 gcc_template_output_pattern
216 ] 224 ]
217 225
218 args = [ 226 args = [
227 "--depfile", rebase_path(depfile, root_build_dir),
219 "--include-path", rebase_path(include_path, root_build_dir), 228 "--include-path", rebase_path(include_path, root_build_dir),
220 "--output", rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}. java", 229 "--output", rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}. java",
221 "--template={{source}}", 230 "--template={{source}}",
222 ] 231 ]
223 } 232 }
224 233
225 apply_gcc_outputs = get_target_outputs(":${target_name}__apply_gcc") 234 apply_gcc_outputs = get_target_outputs(":${target_name}__apply_gcc")
226 base_gen_dir = get_label_info(":${target_name}__apply_gcc", "target_gen_dir") 235 base_gen_dir = get_label_info(":${target_name}__apply_gcc", "target_gen_dir")
227 236
228 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" 237 srcjar_path = "${target_gen_dir}/${target_name}.srcjar"
229 zip("${target_name}__zip_srcjar") { 238 zip("${target_name}__zip_srcjar") {
230 inputs = apply_gcc_outputs 239 inputs = apply_gcc_outputs
231 output = srcjar_path 240 output = srcjar_path
232 base_dir = base_gen_dir 241 base_dir = base_gen_dir
233 } 242 }
234 243
235 group(target_name) { 244 group(target_name) {
236 deps = [ 245 deps = [
237 ":${target_name}__zip_srcjar" 246 ":${target_name}__zip_srcjar"
238 ] 247 ]
239 } 248 }
240 } 249 }
OLDNEW
« no previous file with comments | « build/config/android/internal_rules.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698