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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
6 | 6 |
7 assert(is_android) | 7 assert(is_android) |
8 | 8 |
9 | |
10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) | 9 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) |
11 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) | 10 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) |
12 rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_buil
d_dir) | 11 rebased_android_sdk_build_tools = |
| 12 rebase_path(android_sdk_build_tools, root_build_dir) |
13 | 13 |
14 android_sdk_jar = "$android_sdk/android.jar" | 14 android_sdk_jar = "$android_sdk/android.jar" |
15 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) | 15 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) |
16 | 16 |
17 template("android_lint") { | 17 template("android_lint") { |
18 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 18 if (defined(invoker.testonly)) { |
| 19 testonly = invoker.testonly |
| 20 } |
19 | 21 |
20 jar_path = invoker.jar_path | 22 jar_path = invoker.jar_path |
21 android_manifest = invoker.android_manifest | 23 android_manifest = invoker.android_manifest |
22 java_files = invoker.java_files | 24 java_files = invoker.java_files |
23 base_path = "$target_gen_dir/$target_name" | 25 base_path = "$target_gen_dir/$target_name" |
24 | 26 |
25 action(target_name) { | 27 action(target_name) { |
26 script = "//build/android/gyp/lint.py" | 28 script = "//build/android/gyp/lint.py" |
27 result_path = base_path + "/result.xml" | 29 result_path = base_path + "/result.xml" |
28 config_path = base_path + "/config.xml" | 30 config_path = base_path + "/config.xml" |
29 suppressions_file = "//build/android/lint/suppressions.xml" | 31 suppressions_file = "//build/android/lint/suppressions.xml" |
30 inputs = [ | 32 inputs = [ |
31 suppressions_file, | 33 suppressions_file, |
32 android_manifest, | 34 android_manifest, |
33 jar_path, | 35 jar_path, |
34 ] + java_files | 36 ] + java_files |
35 | 37 |
36 outputs = [ | 38 outputs = [ |
37 config_path, | 39 config_path, |
38 result_path | 40 result_path, |
39 ] | 41 ] |
40 | 42 |
41 rebased_java_files = rebase_path(java_files, root_build_dir) | 43 rebased_java_files = rebase_path(java_files, root_build_dir) |
42 | 44 |
43 args = [ | 45 args = [ |
44 "--lint-path=$rebased_android_sdk_root/tools/lint", | 46 "--lint-path=$rebased_android_sdk_root/tools/lint", |
45 "--config-path", rebase_path(suppressions_file, root_build_dir), | 47 "--config-path", |
46 "--manifest-path", rebase_path(android_manifest, root_build_dir), | 48 rebase_path(suppressions_file, root_build_dir), |
| 49 "--manifest-path", |
| 50 rebase_path(android_manifest, root_build_dir), |
47 "--product-dir=.", | 51 "--product-dir=.", |
48 "--jar-path", rebase_path(jar_path, root_build_dir), | 52 "--jar-path", |
49 "--processed-config-path", rebase_path(config_path, root_build_dir), | 53 rebase_path(jar_path, root_build_dir), |
50 "--result-path", rebase_path(result_path, root_build_dir), | 54 "--processed-config-path", |
| 55 rebase_path(config_path, root_build_dir), |
| 56 "--result-path", |
| 57 rebase_path(result_path, root_build_dir), |
51 "--java-files=$rebased_java_files", | 58 "--java-files=$rebased_java_files", |
52 "--enable", | 59 "--enable", |
53 ] | 60 ] |
54 } | 61 } |
55 } | 62 } |
56 | 63 |
57 | |
58 template("dex") { | 64 template("dex") { |
59 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 65 if (defined(invoker.testonly)) { |
| 66 testonly = invoker.testonly |
| 67 } |
60 | 68 |
61 assert(defined(invoker.sources)) | 69 assert(defined(invoker.sources)) |
62 assert(defined(invoker.output)) | 70 assert(defined(invoker.output)) |
63 action(target_name) { | 71 action(target_name) { |
64 script = "//build/android/gyp/dex.py" | 72 script = "//build/android/gyp/dex.py" |
65 depfile = "$target_gen_dir/$target_name.d" | 73 depfile = "$target_gen_dir/$target_name.d" |
66 sources = invoker.sources | 74 sources = invoker.sources |
67 outputs = [depfile, invoker.output] | 75 outputs = [ |
| 76 depfile, |
| 77 invoker.output, |
| 78 ] |
68 if (defined(invoker.inputs)) { | 79 if (defined(invoker.inputs)) { |
69 inputs = invoker.inputs | 80 inputs = invoker.inputs |
70 } | 81 } |
71 | 82 |
72 if (defined(invoker.deps)) { | 83 if (defined(invoker.deps)) { |
73 deps = invoker.deps | 84 deps = invoker.deps |
74 } | 85 } |
75 | 86 |
76 rebased_output = rebase_path(invoker.output, root_build_dir) | 87 rebased_output = rebase_path(invoker.output, root_build_dir) |
77 | 88 |
78 args = [ | 89 args = [ |
79 "--depfile", rebase_path(depfile, root_build_dir), | 90 "--depfile", |
80 "--android-sdk-tools", rebased_android_sdk_build_tools, | 91 rebase_path(depfile, root_build_dir), |
81 "--dex-path", rebased_output, | 92 "--android-sdk-tools", |
| 93 rebased_android_sdk_build_tools, |
| 94 "--dex-path", |
| 95 rebased_output, |
82 ] | 96 ] |
83 | 97 |
84 if (defined(invoker.no_locals) && invoker.no_locals) { | 98 if (defined(invoker.no_locals) && invoker.no_locals) { |
85 args += [ | 99 args += [ "--no-locals=1" ] |
86 "--no-locals=1" | |
87 ] | |
88 } | 100 } |
89 | 101 |
90 if (defined(invoker.args)) { | 102 if (defined(invoker.args)) { |
91 args += invoker.args | 103 args += invoker.args |
92 } | 104 } |
93 | 105 |
94 args += rebase_path(invoker.sources, root_build_dir) | 106 args += rebase_path(invoker.sources, root_build_dir) |
95 } | 107 } |
96 } | 108 } |
97 | 109 |
98 | |
99 # Creates a zip archive of the inputs. | 110 # Creates a zip archive of the inputs. |
100 # If base_dir is provided, the archive paths will be relative to it. | 111 # If base_dir is provided, the archive paths will be relative to it. |
101 template("zip") { | 112 template("zip") { |
102 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 113 if (defined(invoker.testonly)) { |
| 114 testonly = invoker.testonly |
| 115 } |
103 | 116 |
104 assert(defined(invoker.inputs)) | 117 assert(defined(invoker.inputs)) |
105 assert(defined(invoker.output)) | 118 assert(defined(invoker.output)) |
106 | 119 |
107 rebase_inputs = rebase_path(invoker.inputs, root_build_dir) | 120 rebase_inputs = rebase_path(invoker.inputs, root_build_dir) |
108 rebase_output = rebase_path(invoker.output, root_build_dir) | 121 rebase_output = rebase_path(invoker.output, root_build_dir) |
109 action(target_name) { | 122 action(target_name) { |
110 script = "//build/android/gn/zip.py" | 123 script = "//build/android/gn/zip.py" |
111 depfile = "$target_gen_dir/$target_name.d" | 124 depfile = "$target_gen_dir/$target_name.d" |
112 inputs = invoker.inputs | 125 inputs = invoker.inputs |
113 outputs = [ | 126 outputs = [ |
114 depfile, | 127 depfile, |
115 invoker.output | 128 invoker.output, |
116 ] | 129 ] |
117 args = [ | 130 args = [ |
118 "--depfile", rebase_path(depfile, root_build_dir), | 131 "--depfile", |
| 132 rebase_path(depfile, root_build_dir), |
119 "--inputs=$rebase_inputs", | 133 "--inputs=$rebase_inputs", |
120 "--output=$rebase_output", | 134 "--output=$rebase_output", |
121 ] | 135 ] |
122 if (defined(invoker.base_dir)) { | 136 if (defined(invoker.base_dir)) { |
123 args += [ | 137 args += [ |
124 "--base-dir", rebase_path(invoker.base_dir, root_build_dir) | 138 "--base-dir", |
| 139 rebase_path(invoker.base_dir, root_build_dir), |
125 ] | 140 ] |
126 } | 141 } |
127 } | 142 } |
128 } | 143 } |
129 | 144 |
130 | |
131 # Write the target's .build_config file. This is a json file that contains a | 145 # Write the target's .build_config file. This is a json file that contains a |
132 # dictionary of information about how to build this target (things that | 146 # dictionary of information about how to build this target (things that |
133 # require knowledge about this target's dependencies and cannot be calculated | 147 # require knowledge about this target's dependencies and cannot be calculated |
134 # at gn-time). There is a special syntax to add a value in that dictionary to | 148 # at gn-time). There is a special syntax to add a value in that dictionary to |
135 # an action/action_foreachs args: | 149 # an action/action_foreachs args: |
136 # --python-arg=@FileArg($rebased_build_config_path:key0:key1) | 150 # --python-arg=@FileArg($rebased_build_config_path:key0:key1) |
137 # At runtime, such an arg will be replaced by the value in the build_config. | 151 # At runtime, such an arg will be replaced by the value in the build_config. |
138 # See build/android/gyp/write_build_config.py and | 152 # See build/android/gyp/write_build_config.py and |
139 # build/android/gyp/util/build_utils.py:ExpandFileArgs | 153 # build/android/gyp/util/build_utils.py:ExpandFileArgs |
140 template("write_build_config") { | 154 template("write_build_config") { |
141 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 155 if (defined(invoker.testonly)) { |
| 156 testonly = invoker.testonly |
| 157 } |
142 | 158 |
143 assert(defined(invoker.type)) | 159 assert(defined(invoker.type)) |
144 assert(defined(invoker.build_config)) | 160 assert(defined(invoker.build_config)) |
145 | 161 |
146 type = invoker.type | 162 type = invoker.type |
147 build_config = invoker.build_config | 163 build_config = invoker.build_config |
148 | 164 |
149 assert(type == "android_apk" || type == "java_library" || type == "android_res
ources") | 165 assert(type == "android_apk" || type == "java_library" || |
| 166 type == "android_resources") |
150 | 167 |
151 action(target_name) { | 168 action(target_name) { |
152 script = "//build/android/gyp/write_build_config.py" | 169 script = "//build/android/gyp/write_build_config.py" |
153 depfile = "$target_gen_dir/$target_name.d" | 170 depfile = "$target_gen_dir/$target_name.d" |
154 inputs = [] | 171 inputs = [] |
155 | 172 |
156 deps = [] | 173 deps = [] |
157 if (defined(invoker.deps)) { | 174 if (defined(invoker.deps)) { |
158 deps += invoker.deps | 175 deps += invoker.deps |
159 } | 176 } |
160 | 177 |
161 possible_deps_configs = [] | 178 possible_deps_configs = [] |
162 foreach(d, deps) { | 179 foreach(d, deps) { |
163 dep_gen_dir = get_label_info(d, "target_gen_dir") | 180 dep_gen_dir = get_label_info(d, "target_gen_dir") |
164 dep_name = get_label_info(d, "name") | 181 dep_name = get_label_info(d, "name") |
165 possible_deps_configs += [ "$dep_gen_dir/$dep_name.build_config" ] | 182 possible_deps_configs += [ "$dep_gen_dir/$dep_name.build_config" ] |
166 } | 183 } |
167 rebase_possible_deps_configs = rebase_path(possible_deps_configs) | 184 rebase_possible_deps_configs = rebase_path(possible_deps_configs) |
168 | 185 |
169 outputs = [ | 186 outputs = [ |
170 depfile, | 187 depfile, |
171 build_config | 188 build_config, |
172 ] | 189 ] |
173 | 190 |
174 args = [ | 191 args = [ |
175 "--type", type, | 192 "--type", |
176 "--depfile", rebase_path(depfile, root_build_dir), | 193 type, |
| 194 "--depfile", |
| 195 rebase_path(depfile, root_build_dir), |
177 "--possible-deps-configs=$rebase_possible_deps_configs", | 196 "--possible-deps-configs=$rebase_possible_deps_configs", |
178 "--build-config", rebase_path(build_config, root_build_dir), | 197 "--build-config", |
| 198 rebase_path(build_config, root_build_dir), |
179 ] | 199 ] |
180 | 200 |
181 is_java_library = type == "java_library" | 201 is_java_library = type == "java_library" |
182 is_apk = type == "android_apk" | 202 is_apk = type == "android_apk" |
183 is_android_resources = type == "android_resources" | 203 is_android_resources = type == "android_resources" |
184 | 204 |
185 supports_android = (is_apk || is_android_resources || | 205 supports_android = is_apk || is_android_resources || |
186 (is_java_library && defined(invoker.supports_android) && | 206 (is_java_library && defined(invoker.supports_android) && |
187 invoker.supports_android)) | 207 invoker.supports_android) |
188 requires_android = (is_apk || is_android_resources || | 208 requires_android = is_apk || is_android_resources || |
189 (is_java_library && defined(invoker.requires_android) && | 209 (is_java_library && defined(invoker.requires_android) && |
190 invoker.requires_android)) | 210 invoker.requires_android) |
191 | 211 |
192 assert(!requires_android || supports_android, "requires_android requires" + | 212 assert(!requires_android || supports_android, |
193 " supports_android") | 213 "requires_android requires" + " supports_android") |
| 214 |
194 # Mark these variables as used. | 215 # Mark these variables as used. |
195 assert(is_java_library || true) | 216 assert(is_java_library || true) |
196 assert(is_apk || true) | 217 assert(is_apk || true) |
197 assert(is_android_resources || true) | 218 assert(is_android_resources || true) |
198 | 219 |
199 if (is_java_library || is_apk) { | 220 if (is_java_library || is_apk) { |
200 args += [ | 221 args += [ |
201 "--jar-path", rebase_path(invoker.jar_path, root_build_dir), | 222 "--jar-path", |
| 223 rebase_path(invoker.jar_path, root_build_dir), |
202 ] | 224 ] |
203 } | 225 } |
204 | 226 |
205 if (is_apk || (is_java_library && supports_android)) { | 227 if (is_apk || (is_java_library && supports_android)) { |
206 args += [ | 228 args += [ |
207 "--dex-path", rebase_path(invoker.dex_path, root_build_dir), | 229 "--dex-path", |
| 230 rebase_path(invoker.dex_path, root_build_dir), |
208 ] | 231 ] |
209 } | 232 } |
210 if (supports_android) { | 233 if (supports_android) { |
211 args += [ "--supports-android" ] | 234 args += [ "--supports-android" ] |
212 } | 235 } |
213 if (requires_android) { | 236 if (requires_android) { |
214 args += [ "--requires-android" ] | 237 args += [ "--requires-android" ] |
215 } | 238 } |
216 if (defined(invoker.bypass_platform_checks) && | 239 if (defined(invoker.bypass_platform_checks) && |
217 invoker.bypass_platform_checks) { | 240 invoker.bypass_platform_checks) { |
218 args += [ "--bypass-platform-checks" ] | 241 args += [ "--bypass-platform-checks" ] |
219 } | 242 } |
220 | 243 |
221 if (is_android_resources || is_apk) { | 244 if (is_android_resources || is_apk) { |
222 assert(defined(invoker.resources_zip)) | 245 assert(defined(invoker.resources_zip)) |
223 args += [ | 246 args += [ |
224 "--resources-zip", rebase_path(invoker.resources_zip, root_build_dir), | 247 "--resources-zip", |
| 248 rebase_path(invoker.resources_zip, root_build_dir), |
225 ] | 249 ] |
226 if (defined(invoker.android_manifest)) { | 250 if (defined(invoker.android_manifest)) { |
227 inputs += [ | 251 inputs += [ invoker.android_manifest ] |
228 invoker.android_manifest | |
229 ] | |
230 args += [ | 252 args += [ |
231 "--android-manifest", rebase_path(invoker.android_manifest, root_build
_dir), | 253 "--android-manifest", |
| 254 rebase_path(invoker.android_manifest, root_build_dir), |
232 ] | 255 ] |
233 } | 256 } |
234 if (defined(invoker.custom_package)) { | 257 if (defined(invoker.custom_package)) { |
235 args += [ | 258 args += [ |
236 "--package-name", invoker.custom_package | 259 "--package-name", |
| 260 invoker.custom_package, |
237 ] | 261 ] |
238 } | 262 } |
239 } | 263 } |
240 | 264 |
241 if (is_apk) { | 265 if (is_apk) { |
242 if (defined(invoker.native_libs)) { | 266 if (defined(invoker.native_libs)) { |
243 rebased_native_libs = rebase_path(invoker.native_libs, root_build_dir) | 267 rebased_native_libs = rebase_path(invoker.native_libs, root_build_dir) |
244 rebased_android_readelf = rebase_path(android_readelf, root_build_dir) | 268 rebased_android_readelf = rebase_path(android_readelf, root_build_dir) |
245 args += [ | 269 args += [ |
246 "--native-libs=$rebased_native_libs", | 270 "--native-libs=$rebased_native_libs", |
247 "--readelf-path=$rebased_android_readelf", | 271 "--readelf-path=$rebased_android_readelf", |
248 ] | 272 ] |
249 } | 273 } |
250 } | 274 } |
251 | 275 |
252 if (defined(invoker.srcjar)) { | 276 if (defined(invoker.srcjar)) { |
253 args += [ | 277 args += [ |
254 "--srcjar", rebase_path(invoker.srcjar, root_build_dir) | 278 "--srcjar", |
| 279 rebase_path(invoker.srcjar, root_build_dir), |
255 ] | 280 ] |
256 } | 281 } |
257 } | 282 } |
258 } | 283 } |
259 | 284 |
260 | |
261 template("process_java_prebuilt") { | 285 template("process_java_prebuilt") { |
262 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 286 if (defined(invoker.testonly)) { |
| 287 testonly = invoker.testonly |
| 288 } |
263 | 289 |
264 _input_jar_path = invoker.input_jar_path | 290 _input_jar_path = invoker.input_jar_path |
265 _output_jar_path = invoker.output_jar_path | 291 _output_jar_path = invoker.output_jar_path |
266 _jar_toc_path = _output_jar_path + ".TOC" | 292 _jar_toc_path = _output_jar_path + ".TOC" |
267 | 293 |
268 assert(invoker.build_config != "") | 294 assert(invoker.build_config != "") |
269 | 295 |
270 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { | 296 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
271 _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar" | 297 _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar" |
272 _proguard_config_path = invoker.proguard_config | 298 _proguard_config_path = invoker.proguard_config |
273 _build_config = invoker.build_config | 299 _build_config = invoker.build_config |
274 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 300 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
275 action("${target_name}__proguard_process") { | 301 action("${target_name}__proguard_process") { |
276 script = "//build/android/gyp/proguard.py" | 302 script = "//build/android/gyp/proguard.py" |
277 inputs = [ | 303 inputs = [ |
278 android_sdk_jar, | 304 android_sdk_jar, |
279 _proguard_jar_path, | 305 _proguard_jar_path, |
280 _build_config, | 306 _build_config, |
281 _input_jar_path, | 307 _input_jar_path, |
282 _proguard_config_path, | 308 _proguard_config_path, |
283 ] | 309 ] |
284 depfile = "${target_gen_dir}/${target_name}.d" | 310 depfile = "${target_gen_dir}/${target_name}.d" |
285 outputs = [ | 311 outputs = [ |
286 depfile, | 312 depfile, |
287 _output_jar_path, | 313 _output_jar_path, |
288 ] | 314 ] |
289 args = [ | 315 args = [ |
290 "--depfile", rebase_path(depfile, root_build_dir), | 316 "--depfile", |
291 "--proguard-path", rebase_path(_proguard_jar_path, root_build_dir), | 317 rebase_path(depfile, root_build_dir), |
292 "--input-path", rebase_path(_input_jar_path, root_build_dir), | 318 "--proguard-path", |
293 "--output-path", rebase_path(_output_jar_path, root_build_dir), | 319 rebase_path(_proguard_jar_path, root_build_dir), |
294 "--proguard-config", rebase_path(_proguard_config_path, root_build_dir), | 320 "--input-path", |
295 "--classpath", rebased_android_sdk_jar, | 321 rebase_path(_input_jar_path, root_build_dir), |
| 322 "--output-path", |
| 323 rebase_path(_output_jar_path, root_build_dir), |
| 324 "--proguard-config", |
| 325 rebase_path(_proguard_config_path, root_build_dir), |
| 326 "--classpath", |
| 327 rebased_android_sdk_jar, |
296 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", | 328 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
297 ] | 329 ] |
298 } | 330 } |
299 } else { | 331 } else { |
300 copy("${target_name}__copy_jar") { | 332 copy("${target_name}__copy_jar") { |
301 sources = [_input_jar_path] | 333 sources = [ |
302 outputs = [_output_jar_path] | 334 _input_jar_path, |
| 335 ] |
| 336 outputs = [ _output_jar_path ] |
303 } | 337 } |
304 } | 338 } |
305 | 339 |
306 action("${target_name}__jar_toc") { | 340 action("${target_name}__jar_toc") { |
307 script = "//build/android/gyp/jar_toc.py" | 341 script = "//build/android/gyp/jar_toc.py" |
308 depfile = "$target_gen_dir/$target_name.d" | 342 depfile = "$target_gen_dir/$target_name.d" |
309 outputs = [ | 343 outputs = [ |
310 depfile, | 344 depfile, |
311 _jar_toc_path, | 345 _jar_toc_path, |
312 _jar_toc_path + ".md5.stamp" | 346 _jar_toc_path + ".md5.stamp", |
313 ] | 347 ] |
314 inputs = [ _output_jar_path ] | 348 inputs = [ |
| 349 _output_jar_path, |
| 350 ] |
315 args = [ | 351 args = [ |
316 "--depfile", rebase_path(depfile, root_build_dir), | 352 "--depfile", |
317 "--jar-path", rebase_path(_output_jar_path, root_build_dir), | 353 rebase_path(depfile, root_build_dir), |
318 "--toc-path", rebase_path(_jar_toc_path, root_build_dir), | 354 "--jar-path", |
| 355 rebase_path(_output_jar_path, root_build_dir), |
| 356 "--toc-path", |
| 357 rebase_path(_jar_toc_path, root_build_dir), |
319 ] | 358 ] |
320 } | 359 } |
321 | 360 |
322 group(target_name) { | 361 group(target_name) { |
323 deps = [ | 362 deps = [ |
324 ":${target_name}__jar_toc" | 363 ":${target_name}__jar_toc", |
325 ] | 364 ] |
326 } | 365 } |
327 } | 366 } |
328 | 367 |
329 | |
330 # Packages resources, assets, dex, and native libraries into an apk. Signs and | 368 # Packages resources, assets, dex, and native libraries into an apk. Signs and |
331 # zipaligns the apk. | 369 # zipaligns the apk. |
332 template("create_apk") { | 370 template("create_apk") { |
333 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 371 if (defined(invoker.testonly)) { |
| 372 testonly = invoker.testonly |
| 373 } |
334 | 374 |
335 _android_manifest = invoker.android_manifest | 375 _android_manifest = invoker.android_manifest |
336 _base_path = invoker.base_path | 376 _base_path = invoker.base_path |
337 _final_apk_path = invoker.apk_path | 377 _final_apk_path = invoker.apk_path |
338 _resources_zip = invoker.resources_zip | 378 _resources_zip = invoker.resources_zip |
339 _dex_path = invoker.dex_path | 379 _dex_path = invoker.dex_path |
340 _keystore_path = invoker.keystore_path | 380 _keystore_path = invoker.keystore_path |
341 _keystore_name = invoker.keystore_name | 381 _keystore_name = invoker.keystore_name |
342 _keystore_password = invoker.keystore_password | 382 _keystore_password = invoker.keystore_password |
343 _load_library_from_apk = invoker.load_library_from_apk | 383 _load_library_from_apk = invoker.load_library_from_apk |
344 | 384 |
345 _deps = [] | 385 _deps = [] |
346 if (defined(invoker.deps)) { | 386 if (defined(invoker.deps)) { |
347 _deps = invoker.deps | 387 _deps = invoker.deps |
348 } | 388 } |
349 | 389 |
350 _native_libs_dir = "//build/android/empty/res" | 390 _native_libs_dir = "//build/android/empty/res" |
351 if (defined(invoker.native_libs_dir)) { | 391 if (defined(invoker.native_libs_dir)) { |
352 _native_libs_dir = invoker.native_libs_dir | 392 _native_libs_dir = invoker.native_libs_dir |
353 } | 393 } |
354 | 394 |
355 _asset_location = "//build/android/empty/res" | 395 _asset_location = "//build/android/empty/res" |
356 if (defined(invoker.asset_location)) { | 396 if (defined(invoker.asset_location)) { |
357 _asset_location = invoker.asset_location | 397 _asset_location = invoker.asset_location |
358 } | 398 } |
359 | 399 |
360 _version_code = invoker.version_code | 400 _version_code = invoker.version_code |
361 _version_name = invoker.version_name | 401 _version_name = invoker.version_name |
362 | 402 |
363 _base_apk_path = _base_path + ".apk_intermediates" | 403 _base_apk_path = _base_path + ".apk_intermediates" |
364 | 404 |
365 _resource_packaged_apk_path = _base_apk_path + ".ap_" | 405 _resource_packaged_apk_path = _base_apk_path + ".ap_" |
366 _packaged_apk_path = _base_apk_path + ".unfinished.apk" | 406 _packaged_apk_path = _base_apk_path + ".unfinished.apk" |
367 _shared_resources = defined(invoker.shared_resources) && invoker.shared_resour
ces | 407 _shared_resources = |
368 | 408 defined(invoker.shared_resources) && invoker.shared_resources |
369 | 409 |
370 _configuration_name = "Release" | 410 _configuration_name = "Release" |
371 if (is_debug) { | 411 if (is_debug) { |
372 _configuration_name = "Debug" | 412 _configuration_name = "Debug" |
373 } | 413 } |
374 | 414 |
375 action("${target_name}__package_resources") { | 415 action("${target_name}__package_resources") { |
376 deps = _deps | 416 deps = _deps |
377 | 417 |
378 script = "//build/android/gyp/package_resources.py" | 418 script = "//build/android/gyp/package_resources.py" |
379 depfile = "${target_gen_dir}/${target_name}.d" | 419 depfile = "${target_gen_dir}/${target_name}.d" |
380 inputs = [ | 420 inputs = [ |
381 _android_manifest, | 421 _android_manifest, |
382 _resources_zip, | 422 _resources_zip, |
383 ] | 423 ] |
384 outputs = [depfile, _resource_packaged_apk_path] | 424 outputs = [ |
| 425 depfile, |
| 426 _resource_packaged_apk_path, |
| 427 ] |
385 | 428 |
386 _rebased_resources_zips = [rebase_path(_resources_zip, root_build_dir)] | 429 _rebased_resources_zips = [ rebase_path(_resources_zip, root_build_dir) ] |
387 args = [ | 430 args = [ |
388 "--depfile", rebase_path(depfile, root_build_dir), | 431 "--depfile", |
389 "--android-sdk", rebased_android_sdk, | 432 rebase_path(depfile, root_build_dir), |
390 "--android-sdk-tools", rebased_android_sdk_build_tools, | 433 "--android-sdk", |
391 | 434 rebased_android_sdk, |
392 "--configuration-name=$_configuration_name", | 435 "--android-sdk-tools", |
393 | 436 rebased_android_sdk_build_tools, |
394 "--android-manifest", rebase_path(_android_manifest, root_build_dir), | 437 "--configuration-name=$_configuration_name", |
395 "--version-code", _version_code, | 438 "--android-manifest", |
396 "--version-name", _version_name, | 439 rebase_path(_android_manifest, root_build_dir), |
397 | 440 "--version-code", |
398 "--asset-dir", rebase_path(_asset_location, root_build_dir), | 441 _version_code, |
399 "--resource-zips=$_rebased_resources_zips", | 442 "--version-name", |
400 | 443 _version_name, |
401 "--apk-path", rebase_path(_resource_packaged_apk_path, root_build_dir), | 444 "--asset-dir", |
402 ] | 445 rebase_path(_asset_location, root_build_dir), |
| 446 "--resource-zips=$_rebased_resources_zips", |
| 447 "--apk-path", |
| 448 rebase_path(_resource_packaged_apk_path, root_build_dir), |
| 449 ] |
403 | 450 |
404 if (_shared_resources) { | 451 if (_shared_resources) { |
405 args += ["--shared-resources"] | 452 args += [ "--shared-resources" ] |
406 } | 453 } |
407 } | 454 } |
408 | 455 |
409 action("${target_name}__package") { | 456 action("${target_name}__package") { |
410 script = "//build/android/gyp/ant.py" | 457 script = "//build/android/gyp/ant.py" |
411 _ant_script = "//build/android/ant/apk-package.xml" | 458 _ant_script = "//build/android/ant/apk-package.xml" |
412 | 459 |
413 depfile = "$target_gen_dir/$target_name.d" | 460 depfile = "$target_gen_dir/$target_name.d" |
414 | 461 |
415 inputs = [ | 462 inputs = [ |
416 _dex_path, | 463 _dex_path, |
417 _resource_packaged_apk_path, | 464 _resource_packaged_apk_path, |
418 _ant_script | 465 _ant_script, |
419 ] | 466 ] |
420 | 467 |
421 outputs = [ | 468 outputs = [ |
422 depfile, | 469 depfile, |
423 _packaged_apk_path, | 470 _packaged_apk_path, |
424 ] | 471 ] |
425 | 472 |
426 _rebased_emma_jar = "" | 473 _rebased_emma_jar = "" |
427 _rebased_resource_packaged_apk_path = rebase_path( | 474 _rebased_resource_packaged_apk_path = |
428 _resource_packaged_apk_path, root_build_dir) | 475 rebase_path(_resource_packaged_apk_path, root_build_dir) |
429 _rebased_packaged_apk_path = rebase_path(_packaged_apk_path, root_build_dir) | 476 _rebased_packaged_apk_path = rebase_path(_packaged_apk_path, root_build_dir) |
430 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir) | 477 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir) |
431 _rebased_dex_path = rebase_path(_dex_path, root_build_dir) | 478 _rebased_dex_path = rebase_path(_dex_path, root_build_dir) |
432 args = [ | 479 args = [ |
433 "--depfile", rebase_path(depfile, root_build_dir), | 480 "--depfile", |
| 481 rebase_path(depfile, root_build_dir), |
434 "--", | 482 "--", |
435 "-quiet", | 483 "-quiet", |
436 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root", | 484 "-DANDROID_SDK_ROOT=$rebased_android_sdk_root", |
437 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools", | 485 "-DANDROID_SDK_TOOLS=$rebased_android_sdk_build_tools", |
438 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path", | 486 "-DRESOURCE_PACKAGED_APK_NAME=$_rebased_resource_packaged_apk_path", |
439 "-DCONFIGURATION_NAME=$_configuration_name", | 487 "-DCONFIGURATION_NAME=$_configuration_name", |
440 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir", | 488 "-DNATIVE_LIBS_DIR=$_rebased_native_libs_dir", |
441 "-DOUT_DIR=", | 489 "-DOUT_DIR=", |
442 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path", | 490 "-DUNSIGNED_APK_PATH=$_rebased_packaged_apk_path", |
443 "-DEMMA_INSTRUMENT=0", | 491 "-DEMMA_INSTRUMENT=0", |
444 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar", | 492 "-DEMMA_DEVICE_JAR=$_rebased_emma_jar", |
445 "-DDEX_FILE_PATH=$_rebased_dex_path", | 493 "-DDEX_FILE_PATH=$_rebased_dex_path", |
446 | |
447 "-Dbasedir=.", | 494 "-Dbasedir=.", |
448 "-buildfile", rebase_path(_ant_script, root_build_dir) | 495 "-buildfile", |
| 496 rebase_path(_ant_script, root_build_dir), |
449 ] | 497 ] |
450 } | 498 } |
451 | 499 |
452 action("${target_name}__finalize") { | 500 action("${target_name}__finalize") { |
453 script = "//build/android/gyp/finalize_apk.py" | 501 script = "//build/android/gyp/finalize_apk.py" |
454 depfile = "$target_gen_dir/$target_name.d" | 502 depfile = "$target_gen_dir/$target_name.d" |
455 | 503 |
456 sources = [_packaged_apk_path] | 504 sources = [ |
457 inputs = [_keystore_path] | 505 _packaged_apk_path, |
458 outputs = [depfile, _final_apk_path] | 506 ] |
| 507 inputs = [ |
| 508 _keystore_path, |
| 509 ] |
| 510 outputs = [ |
| 511 depfile, |
| 512 _final_apk_path, |
| 513 ] |
459 | 514 |
460 args = [ | 515 args = [ |
461 "--depfile", rebase_path(depfile, root_build_dir), | 516 "--depfile", |
462 "--zipalign-path", rebase_path(zipalign_path, root_build_dir), | 517 rebase_path(depfile, root_build_dir), |
463 "--unsigned-apk-path", rebase_path(_packaged_apk_path, root_build_dir), | 518 "--zipalign-path", |
464 "--final-apk-path", rebase_path(_final_apk_path, root_build_dir), | 519 rebase_path(zipalign_path, root_build_dir), |
465 "--key-path", rebase_path(_keystore_path, root_build_dir), | 520 "--unsigned-apk-path", |
466 "--key-name", _keystore_name, | 521 rebase_path(_packaged_apk_path, root_build_dir), |
467 "--key-passwd", _keystore_password, | 522 "--final-apk-path", |
| 523 rebase_path(_final_apk_path, root_build_dir), |
| 524 "--key-path", |
| 525 rebase_path(_keystore_path, root_build_dir), |
| 526 "--key-name", |
| 527 _keystore_name, |
| 528 "--key-passwd", |
| 529 _keystore_password, |
468 ] | 530 ] |
469 if (_load_library_from_apk) { | 531 if (_load_library_from_apk) { |
470 _rezip_jar_path = "$root_build_dir/lib.java/rezip_apk.jar" | 532 _rezip_jar_path = "$root_build_dir/lib.java/rezip_apk.jar" |
471 inputs += [ | 533 inputs += [ _rezip_jar_path ] |
472 _rezip_jar_path | |
473 ] | |
474 args += [ | 534 args += [ |
475 "--load-library-from-zip-file=1", | 535 "--load-library-from-zip-file=1", |
476 "--rezip-apk-jar-path", rebase_path(_rezip_jar_path, root_build_dir) | 536 "--rezip-apk-jar-path", |
| 537 rebase_path(_rezip_jar_path, root_build_dir), |
477 ] | 538 ] |
478 } | 539 } |
479 } | 540 } |
480 | 541 |
481 group(target_name) { | 542 group(target_name) { |
482 deps = [":${target_name}__finalize"] | 543 deps = [ |
| 544 ":${target_name}__finalize", |
| 545 ] |
483 } | 546 } |
484 } | 547 } |
485 | 548 |
486 template("java_prebuilt_impl") { | 549 template("java_prebuilt_impl") { |
487 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 550 if (defined(invoker.testonly)) { |
488 _supports_android = ( | 551 testonly = invoker.testonly |
489 defined(invoker.supports_android) && invoker.supports_android) | 552 } |
| 553 _supports_android = |
| 554 defined(invoker.supports_android) && invoker.supports_android |
490 | 555 |
491 assert(defined(invoker.jar_path)) | 556 assert(defined(invoker.jar_path)) |
492 _base_path = "${target_gen_dir}/$target_name" | 557 _base_path = "${target_gen_dir}/$target_name" |
493 _jar_path = _base_path + ".jar" | 558 _jar_path = _base_path + ".jar" |
494 _build_config = _base_path + ".build_config" | 559 _build_config = _base_path + ".build_config" |
495 | 560 |
496 if (_supports_android) { | 561 if (_supports_android) { |
497 _dex_path = _base_path + ".dex.jar" | 562 _dex_path = _base_path + ".dex.jar" |
498 } | 563 } |
499 | 564 |
500 _final_deps = [] | 565 _final_deps = [] |
501 _template_name = target_name | 566 _template_name = target_name |
502 | 567 |
503 | |
504 _final_deps += [ ":${_template_name}__build_config" ] | 568 _final_deps += [ ":${_template_name}__build_config" ] |
505 write_build_config("${_template_name}__build_config") { | 569 write_build_config("${_template_name}__build_config") { |
506 type = "java_library" | 570 type = "java_library" |
507 supports_android = _supports_android | 571 supports_android = _supports_android |
508 requires_android = (defined(invoker.requires_android) && | 572 requires_android = |
509 invoker.requires_android) | 573 defined(invoker.requires_android) && invoker.requires_android |
510 | 574 |
511 deps = [] | 575 deps = [] |
512 if (defined(invoker.deps)) { | 576 if (defined(invoker.deps)) { |
513 deps += invoker.deps | 577 deps += invoker.deps |
514 } | 578 } |
515 build_config = _build_config | 579 build_config = _build_config |
516 jar_path = _jar_path | 580 jar_path = _jar_path |
517 if (_supports_android) { | 581 if (_supports_android) { |
518 dex_path = _dex_path | 582 dex_path = _dex_path |
519 } | 583 } |
520 } | 584 } |
521 | 585 |
522 _final_deps += [ ":${_template_name}__process_jar" ] | 586 _final_deps += [ ":${_template_name}__process_jar" ] |
523 process_java_prebuilt("${_template_name}__process_jar") { | 587 process_java_prebuilt("${_template_name}__process_jar") { |
524 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { | 588 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
525 proguard_preprocess = true | 589 proguard_preprocess = true |
526 proguard_config = invoker.proguard_config | 590 proguard_config = invoker.proguard_config |
527 } | 591 } |
528 | 592 |
529 build_config = _build_config | 593 build_config = _build_config |
530 input_jar_path = invoker.jar_path | 594 input_jar_path = invoker.jar_path |
531 output_jar_path = _jar_path | 595 output_jar_path = _jar_path |
532 } | 596 } |
533 | 597 |
534 if (_supports_android) { | 598 if (_supports_android) { |
535 _final_deps += [ ":${_template_name}__dex" ] | 599 _final_deps += [ ":${_template_name}__dex" ] |
536 dex("${_template_name}__dex") { | 600 dex("${_template_name}__dex") { |
537 sources = [_jar_path] | 601 sources = [ |
| 602 _jar_path, |
| 603 ] |
538 output = _dex_path | 604 output = _dex_path |
539 } | 605 } |
540 } | 606 } |
541 | 607 |
542 group(target_name) { | 608 group(target_name) { |
543 deps = _final_deps | 609 deps = _final_deps |
544 } | 610 } |
545 } | 611 } |
546 | 612 |
547 | |
548 # Compiles and jars a set of java files. | 613 # Compiles and jars a set of java files. |
549 # | 614 # |
550 # Outputs: | 615 # Outputs: |
551 # $jar_path.jar | 616 # $jar_path.jar |
552 # $jar_path.jar.TOC | 617 # $jar_path.jar.TOC |
553 # | 618 # |
554 # Variables | 619 # Variables |
555 # java_files: List of .java files to compile. | 620 # java_files: List of .java files to compile. |
556 # java_deps: List of java dependencies. These should all have a .jar output | 621 # java_deps: List of java dependencies. These should all have a .jar output |
557 # at "${target_gen_dir}/${target_name}.jar. | 622 # at "${target_gen_dir}/${target_name}.jar. |
558 # chromium_code: If true, enable extra warnings. | 623 # chromium_code: If true, enable extra warnings. |
559 # srcjar_deps: List of srcjar dependencies. The .java files contained in the | 624 # srcjar_deps: List of srcjar dependencies. The .java files contained in the |
560 # dependencies srcjar outputs will be compiled and added to the output jar. | 625 # dependencies srcjar outputs will be compiled and added to the output jar. |
561 # jar_path: Use this to explicitly set the output jar path. Defaults to | 626 # jar_path: Use this to explicitly set the output jar path. Defaults to |
562 # "${target_gen_dir}/${target_name}.jar. | 627 # "${target_gen_dir}/${target_name}.jar. |
563 template("compile_java") { | 628 template("compile_java") { |
564 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 629 if (defined(invoker.testonly)) { |
| 630 testonly = invoker.testonly |
| 631 } |
565 | 632 |
566 assert(defined(invoker.java_files)) | 633 assert(defined(invoker.java_files)) |
567 assert(defined(invoker.build_config)) | 634 assert(defined(invoker.build_config)) |
568 assert(defined(invoker.jar_path)) | 635 assert(defined(invoker.jar_path)) |
569 | 636 |
570 _java_files = invoker.java_files | 637 _java_files = invoker.java_files |
571 _final_jar_path = invoker.jar_path | 638 _final_jar_path = invoker.jar_path |
572 _intermediate_jar_path = "$target_gen_dir/$target_name.initial.jar" | 639 _intermediate_jar_path = "$target_gen_dir/$target_name.initial.jar" |
573 | 640 |
574 _build_config = invoker.build_config | 641 _build_config = invoker.build_config |
(...skipping 15 matching lines...) Expand all Loading... |
590 | 657 |
591 _java_srcjars = [] | 658 _java_srcjars = [] |
592 if (defined(invoker.srcjars)) { | 659 if (defined(invoker.srcjars)) { |
593 _java_srcjars = invoker.srcjars | 660 _java_srcjars = invoker.srcjars |
594 } | 661 } |
595 foreach(dep, _srcjar_deps) { | 662 foreach(dep, _srcjar_deps) { |
596 _dep_gen_dir = get_label_info(dep, "target_gen_dir") | 663 _dep_gen_dir = get_label_info(dep, "target_gen_dir") |
597 _dep_name = get_label_info(dep, "name") | 664 _dep_name = get_label_info(dep, "name") |
598 _java_srcjars += [ "$_dep_gen_dir/$_dep_name.srcjar" ] | 665 _java_srcjars += [ "$_dep_gen_dir/$_dep_name.srcjar" ] |
599 } | 666 } |
| 667 |
600 # Mark srcjar_deps as used. | 668 # Mark srcjar_deps as used. |
601 assert(_srcjar_deps == [] || true) | 669 assert(_srcjar_deps == [] || true) |
602 | 670 |
603 _system_jars = [] | 671 _system_jars = [] |
604 if (defined(invoker.android) && invoker.android) { | 672 if (defined(invoker.android) && invoker.android) { |
605 _system_jars += [ android_sdk_jar ] | 673 _system_jars += [ android_sdk_jar ] |
606 } | 674 } |
607 | 675 |
608 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 676 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
609 _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir) | 677 _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir) |
610 | 678 |
611 _template_name = target_name | 679 _template_name = target_name |
612 _final_deps = [ ":${_template_name}__javac" ] | 680 _final_deps = [ ":${_template_name}__javac" ] |
613 action("${_template_name}__javac") { | 681 action("${_template_name}__javac") { |
614 script = "//build/android/gyp/javac.py" | 682 script = "//build/android/gyp/javac.py" |
615 depfile = "$target_gen_dir/$target_name.d" | 683 depfile = "$target_gen_dir/$target_name.d" |
616 deps = [] | 684 deps = [] |
617 outputs = [ | 685 outputs = [ |
618 depfile, | 686 depfile, |
619 _intermediate_jar_path, | 687 _intermediate_jar_path, |
620 _intermediate_jar_path + ".md5.stamp" | 688 _intermediate_jar_path + ".md5.stamp", |
621 ] | 689 ] |
622 sources = _java_files + _java_srcjars | 690 sources = _java_files + _java_srcjars |
623 inputs = _system_jars + [ _build_config ] | 691 inputs = _system_jars + [ _build_config ] |
624 | 692 |
625 _rebased_system_jars = rebase_path(_system_jars, root_build_dir) | 693 _rebased_system_jars = rebase_path(_system_jars, root_build_dir) |
626 _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir) | 694 _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir) |
627 _rebased_depfile = rebase_path(depfile, root_build_dir) | 695 _rebased_depfile = rebase_path(depfile, root_build_dir) |
628 args = [ | 696 args = [ |
629 "--depfile=$_rebased_depfile", | 697 "--depfile=$_rebased_depfile", |
630 "--classpath=$_rebased_system_jars", | 698 "--classpath=$_rebased_system_jars", |
(...skipping 19 matching lines...) Expand all Loading... |
650 proguard_preprocess = invoker.proguard_preprocess | 718 proguard_preprocess = invoker.proguard_preprocess |
651 proguard_config = invoker.proguard_config | 719 proguard_config = invoker.proguard_config |
652 } | 720 } |
653 } | 721 } |
654 | 722 |
655 group(target_name) { | 723 group(target_name) { |
656 deps = _final_deps | 724 deps = _final_deps |
657 } | 725 } |
658 } | 726 } |
659 | 727 |
| 728 template("java_library_impl") { |
| 729 if (defined(invoker.testonly)) { |
| 730 testonly = invoker.testonly |
| 731 } |
660 | 732 |
661 template("java_library_impl") { | 733 assert( |
662 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 734 defined(invoker.java_files) || defined(invoker.DEPRECATED_java_in_dir) || |
663 | 735 defined(invoker.srcjars) || defined(invoker.srcjar_deps)) |
664 assert(defined(invoker.java_files) || defined(invoker.DEPRECATED_java_in_dir) | |
665 || defined(invoker.srcjars) || defined(invoker.srcjar_deps)) | |
666 _base_path = "$target_gen_dir/$target_name" | 736 _base_path = "$target_gen_dir/$target_name" |
667 _jar_path = _base_path + ".jar" | 737 _jar_path = _base_path + ".jar" |
668 if (defined(invoker.jar_path)) { | 738 if (defined(invoker.jar_path)) { |
669 _jar_path = invoker.jar_path | 739 _jar_path = invoker.jar_path |
670 } | 740 } |
671 _template_name = target_name | 741 _template_name = target_name |
672 | 742 |
673 _final_deps = [] | 743 _final_deps = [] |
674 _final_datadeps = [] | 744 _final_datadeps = [] |
675 if (defined(invoker.datadeps)) { | 745 if (defined(invoker.datadeps)) { |
676 _final_datadeps = invoker.datadeps | 746 _final_datadeps = invoker.datadeps |
677 } | 747 } |
678 | 748 |
679 _supports_android = (defined(invoker.supports_android) && | 749 _supports_android = |
680 invoker.supports_android) | 750 defined(invoker.supports_android) && invoker.supports_android |
681 _requires_android = (defined(invoker.requires_android) && | 751 _requires_android = |
682 invoker.requires_android) | 752 defined(invoker.requires_android) && invoker.requires_android |
683 | 753 |
684 if (_supports_android) { | 754 if (_supports_android) { |
685 _dex_path = _base_path + ".dex.jar" | 755 _dex_path = _base_path + ".dex.jar" |
686 if (defined(invoker.dex_path)) { | 756 if (defined(invoker.dex_path)) { |
687 _dex_path = invoker.dex_path | 757 _dex_path = invoker.dex_path |
688 } | 758 } |
689 } | 759 } |
690 | 760 |
691 if (defined(invoker.override_build_config)) { | 761 if (defined(invoker.override_build_config)) { |
692 _build_config = invoker.override_build_config | 762 _build_config = invoker.override_build_config |
693 } else { | 763 } else { |
694 _build_config = _base_path + ".build_config" | 764 _build_config = _base_path + ".build_config" |
695 _final_deps += [ ":${_template_name}__build_config" ] | 765 _final_deps += [ ":${_template_name}__build_config" ] |
696 write_build_config("${_template_name}__build_config") { | 766 write_build_config("${_template_name}__build_config") { |
697 type = "java_library" | 767 type = "java_library" |
698 supports_android = _supports_android | 768 supports_android = _supports_android |
699 requires_android = _requires_android | 769 requires_android = _requires_android |
700 bypass_platform_checks = (defined(invoker.bypass_platform_checks) && | 770 bypass_platform_checks = defined(invoker.bypass_platform_checks) && |
701 invoker.bypass_platform_checks) | 771 invoker.bypass_platform_checks |
702 | 772 |
703 deps = [] | 773 deps = [] |
704 if (defined(invoker.deps)) { | 774 if (defined(invoker.deps)) { |
705 deps += invoker.deps | 775 deps += invoker.deps |
706 } | 776 } |
707 | 777 |
708 build_config = _build_config | 778 build_config = _build_config |
709 jar_path = _jar_path | 779 jar_path = _jar_path |
710 if (_supports_android) { | 780 if (_supports_android) { |
711 dex_path = _dex_path | 781 dex_path = _dex_path |
(...skipping 15 matching lines...) Expand all Loading... |
727 if (defined(invoker.srcjars)) { | 797 if (defined(invoker.srcjars)) { |
728 _srcjars = invoker.srcjars | 798 _srcjars = invoker.srcjars |
729 } | 799 } |
730 | 800 |
731 _java_files = [] | 801 _java_files = [] |
732 if (defined(invoker.java_files)) { | 802 if (defined(invoker.java_files)) { |
733 _java_files = invoker.java_files | 803 _java_files = invoker.java_files |
734 } else if (defined(invoker.DEPRECATED_java_in_dir)) { | 804 } else if (defined(invoker.DEPRECATED_java_in_dir)) { |
735 _src_dir = invoker.DEPRECATED_java_in_dir + "/src" | 805 _src_dir = invoker.DEPRECATED_java_in_dir + "/src" |
736 _src_dir_exists = exec_script("//build/dir_exists.py", | 806 _src_dir_exists = exec_script("//build/dir_exists.py", |
737 [ rebase_path(_src_dir, root_build_dir) ], | 807 [ rebase_path(_src_dir, root_build_dir) ], |
738 "string") | 808 "string") |
739 assert(_src_dir_exists == "False", | 809 assert(_src_dir_exists == "False", |
740 "In GN, java_in_dir should be the fully specified java directory " + | 810 "In GN, java_in_dir should be the fully specified java directory " + |
741 "(i.e. including the trailing \"/src\")") | 811 "(i.e. including the trailing \"/src\")") |
742 | 812 |
743 _java_files_build_rel = exec_script( | 813 _java_files_build_rel = exec_script( |
744 "//build/android/gyp/find.py", | 814 "//build/android/gyp/find.py", |
745 [ | 815 [ |
746 "--pattern", | 816 "--pattern", |
747 "*.java", | 817 "*.java", |
748 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir) | 818 rebase_path(invoker.DEPRECATED_java_in_dir, root_build_dir), |
749 ], | 819 ], |
750 "list lines" | 820 "list lines") |
751 ) | |
752 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) | 821 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) |
753 } | 822 } |
754 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != []) | 823 assert(_java_files != [] || _srcjar_deps != [] || _srcjars != []) |
755 | 824 |
756 _final_deps += [ ":${_template_name}__compile_java" ] | 825 _final_deps += [ ":${_template_name}__compile_java" ] |
757 compile_java("${_template_name}__compile_java") { | 826 compile_java("${_template_name}__compile_java") { |
758 jar_path = _jar_path | 827 jar_path = _jar_path |
759 build_config = _build_config | 828 build_config = _build_config |
760 java_files = _java_files | 829 java_files = _java_files |
761 srcjar_deps = _srcjar_deps | 830 srcjar_deps = _srcjar_deps |
762 srcjars = _srcjars | 831 srcjars = _srcjars |
763 chromium_code = _chromium_code | 832 chromium_code = _chromium_code |
764 android = _requires_android | 833 android = _requires_android |
765 | 834 |
766 if (defined(invoker.jar_excluded_patterns)) { jar_excluded_patterns = invoke
r.jar_excluded_patterns } | 835 if (defined(invoker.jar_excluded_patterns)) { |
767 if (defined(invoker.proguard_preprocess)) { proguard_preprocess = invoker.pr
oguard_preprocess } | 836 jar_excluded_patterns = invoker.jar_excluded_patterns |
768 if (defined(invoker.proguard_config)) { proguard_config = invoker.proguard_c
onfig } | 837 } |
769 if (defined(invoker.dist_jar_path)) { dist_jar_path = invoker.dist_jar_path
} | 838 if (defined(invoker.proguard_preprocess)) { |
| 839 proguard_preprocess = invoker.proguard_preprocess |
| 840 } |
| 841 if (defined(invoker.proguard_config)) { |
| 842 proguard_config = invoker.proguard_config |
| 843 } |
| 844 if (defined(invoker.dist_jar_path)) { |
| 845 dist_jar_path = invoker.dist_jar_path |
| 846 } |
770 } | 847 } |
771 | 848 |
772 if (defined(invoker.main_class)) { | 849 if (defined(invoker.main_class)) { |
773 _final_deps += [ ":${_template_name}__binary_script" ] | 850 _final_deps += [ ":${_template_name}__binary_script" ] |
774 action("${_template_name}__binary_script") { | 851 action("${_template_name}__binary_script") { |
775 script = "//build/android/gyp/create_java_binary_script.py" | 852 script = "//build/android/gyp/create_java_binary_script.py" |
776 depfile = "$target_gen_dir/$target_name.d" | 853 depfile = "$target_gen_dir/$target_name.d" |
777 java_script = "$root_build_dir/bin/$_template_name" | 854 java_script = "$root_build_dir/bin/$_template_name" |
778 inputs = [ _build_config ] | 855 inputs = [ |
| 856 _build_config, |
| 857 ] |
779 outputs = [ | 858 outputs = [ |
780 depfile, | 859 depfile, |
781 java_script, | 860 java_script, |
782 ] | 861 ] |
783 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 862 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
784 args = [ | 863 args = [ |
785 "--depfile", rebase_path(depfile, root_build_dir), | 864 "--depfile", |
786 "--output", rebase_path(java_script, root_build_dir), | 865 rebase_path(depfile, root_build_dir), |
| 866 "--output", |
| 867 rebase_path(java_script, root_build_dir), |
787 "--classpath=@FileArg($_rebased_build_config:java:full_classpath)", | 868 "--classpath=@FileArg($_rebased_build_config:java:full_classpath)", |
788 "--jar-path", rebase_path(_jar_path, root_build_dir), | 869 "--jar-path", |
789 "--main-class", invoker.main_class, | 870 rebase_path(_jar_path, root_build_dir), |
| 871 "--main-class", |
| 872 invoker.main_class, |
790 ] | 873 ] |
791 } | 874 } |
792 } | 875 } |
793 | 876 |
794 if (_supports_android) { | 877 if (_supports_android) { |
795 if (defined(invoker.chromium_code) && invoker.chromium_code) { | 878 if (defined(invoker.chromium_code) && invoker.chromium_code) { |
796 _android_manifest = "//build/android/AndroidManifest.xml" | 879 _android_manifest = "//build/android/AndroidManifest.xml" |
797 if (defined(invoker.android_manifest)) { | 880 if (defined(invoker.android_manifest)) { |
798 _android_manifest = invoker.android_manifest | 881 _android_manifest = invoker.android_manifest |
799 } | 882 } |
800 | 883 |
801 _final_datadeps += [ ":${_template_name}__lint" ] | 884 _final_datadeps += [ ":${_template_name}__lint" ] |
802 android_lint("${_template_name}__lint") { | 885 android_lint("${_template_name}__lint") { |
803 android_manifest = _android_manifest | 886 android_manifest = _android_manifest |
804 jar_path = _jar_path | 887 jar_path = _jar_path |
805 java_files = _java_files | 888 java_files = _java_files |
806 } | 889 } |
807 } | 890 } |
808 | 891 |
809 _final_deps += [ ":${_template_name}__dex" ] | 892 _final_deps += [ ":${_template_name}__dex" ] |
810 dex("${_template_name}__dex") { | 893 dex("${_template_name}__dex") { |
811 sources = [_jar_path] | 894 sources = [ |
| 895 _jar_path, |
| 896 ] |
812 output = _dex_path | 897 output = _dex_path |
813 } | 898 } |
| 899 |
| 900 if (defined(invoker.standalone_dex_path)) { |
| 901 _final_deps += [ ":${_template_name}__standalone_dex" ] |
| 902 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
| 903 dex("${_template_name}__standalone_dex") { |
| 904 sources = [_jar_path] |
| 905 inputs = [_build_config] |
| 906 output = invoker.standalone_dex_path |
| 907 dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files" |
| 908 args = [ "--inputs=@FileArg($dex_arg_key)" ] |
| 909 } |
| 910 } |
814 } | 911 } |
815 | 912 |
816 group(target_name) { | 913 group(target_name) { |
| 914 if (defined(invoker.visibility)) { |
| 915 visibility = invoker.visibility |
| 916 } |
817 deps = _final_deps | 917 deps = _final_deps |
818 datadeps = _final_datadeps | 918 datadeps = _final_datadeps |
819 } | 919 } |
820 } | 920 } |
821 | 921 |
822 | |
823 # Runs process_resources.py | 922 # Runs process_resources.py |
824 template("process_resources") { | 923 template("process_resources") { |
825 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 924 if (defined(invoker.testonly)) { |
| 925 testonly = invoker.testonly |
| 926 } |
826 | 927 |
827 zip_path = invoker.zip_path | 928 zip_path = invoker.zip_path |
828 srcjar_path = invoker.srcjar_path | 929 srcjar_path = invoker.srcjar_path |
829 build_config = invoker.build_config | 930 build_config = invoker.build_config |
830 resource_dirs = invoker.resource_dirs | 931 resource_dirs = invoker.resource_dirs |
831 android_manifest = invoker.android_manifest | 932 android_manifest = invoker.android_manifest |
832 | 933 |
833 non_constant_id = true | 934 non_constant_id = true |
834 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) { | 935 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) { |
835 non_constant_id = false | 936 non_constant_id = false |
836 } | 937 } |
837 | 938 |
838 action(target_name) { | 939 action(target_name) { |
839 script = "//build/android/gyp/process_resources.py" | 940 script = "//build/android/gyp/process_resources.py" |
840 | 941 |
841 depfile = "$target_gen_dir/$target_name.d" | 942 depfile = "$target_gen_dir/$target_name.d" |
842 outputs = [ | 943 outputs = [ |
843 depfile, | 944 depfile, |
844 zip_path, | 945 zip_path, |
845 srcjar_path, | 946 srcjar_path, |
846 ] | 947 ] |
847 | 948 |
848 sources_build_rel = exec_script( | 949 sources_build_rel = exec_script("//build/android/gyp/find.py", |
849 "//build/android/gyp/find.py", | 950 rebase_path(resource_dirs, root_build_dir), |
850 rebase_path(resource_dirs, root_build_dir), | 951 "list lines") |
851 "list lines" | |
852 ) | |
853 sources = rebase_path(sources_build_rel, ".", root_build_dir) | 952 sources = rebase_path(sources_build_rel, ".", root_build_dir) |
854 | 953 |
855 inputs = [ | 954 inputs = [ |
856 build_config, | 955 build_config, |
857 android_manifest, | 956 android_manifest, |
858 ] | 957 ] |
859 | 958 |
860 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir) | 959 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir) |
861 rebase_build_config = rebase_path(build_config, root_build_dir) | 960 rebase_build_config = rebase_path(build_config, root_build_dir) |
862 args = [ | 961 args = [ |
863 "--depfile", rebase_path(depfile, root_build_dir), | 962 "--depfile", |
864 "--android-sdk", rebase_path(android_sdk, root_build_dir), | 963 rebase_path(depfile, root_build_dir), |
865 "--android-sdk-tools", rebase_path(android_sdk_build_tools, root_build_dir
), | 964 "--android-sdk", |
866 "--android-manifest", rebase_path(android_manifest, root_build_dir), | 965 rebase_path(android_sdk, root_build_dir), |
867 | 966 "--android-sdk-tools", |
| 967 rebase_path(android_sdk_build_tools, root_build_dir), |
| 968 "--android-manifest", |
| 969 rebase_path(android_manifest, root_build_dir), |
868 "--resource-dirs=$rebase_resource_dirs", | 970 "--resource-dirs=$rebase_resource_dirs", |
869 "--srcjar-out", rebase_path(srcjar_path, root_build_dir), | 971 "--srcjar-out", |
870 "--resource-zip-out", rebase_path(zip_path, root_build_dir), | 972 rebase_path(srcjar_path, root_build_dir), |
871 | 973 "--resource-zip-out", |
| 974 rebase_path(zip_path, root_build_dir), |
872 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc
y_zips)", | 975 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc
y_zips)", |
873 "--extra-res-packages=@FileArg($rebase_build_config:resources:extra_packag
e_names)", | 976 "--extra-res-packages=@FileArg($rebase_build_config:resources:extra_packag
e_names)", |
874 ] | 977 ] |
875 | 978 |
876 if (non_constant_id) { | 979 if (non_constant_id) { |
877 args += [ "--non-constant-id" ] | 980 args += [ "--non-constant-id" ] |
878 } | 981 } |
879 | 982 |
880 if (defined(invoker.custom_package)) { | 983 if (defined(invoker.custom_package)) { |
881 args += [ | 984 args += [ |
882 "--custom-package", invoker.custom_package, | 985 "--custom-package", |
| 986 invoker.custom_package, |
883 ] | 987 ] |
884 } | 988 } |
885 | 989 |
886 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) { | 990 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) { |
887 args += ["--v14-verify-only"] | 991 args += [ "--v14-verify-only" ] |
888 } | 992 } |
889 | 993 |
890 if (defined(invoker.shared_resources) && | 994 if (defined(invoker.shared_resources) && invoker.shared_resources) { |
891 invoker.shared_resources) { | 995 args += [ "--shared-resources" ] |
892 args += ["--shared-resources"] | |
893 } | 996 } |
894 | 997 |
895 if (defined(invoker.all_resources_zip_path)) { | 998 if (defined(invoker.all_resources_zip_path)) { |
896 all_resources_zip = invoker.all_resources_zip_path | 999 all_resources_zip = invoker.all_resources_zip_path |
897 outputs += [ all_resources_zip ] | 1000 outputs += [ all_resources_zip ] |
898 args += [ | 1001 args += [ |
899 "--all-resources-zip-out", rebase_path(all_resources_zip, root_build_dir
) | 1002 "--all-resources-zip-out", |
| 1003 rebase_path(all_resources_zip, root_build_dir), |
900 ] | 1004 ] |
901 } | 1005 } |
902 | 1006 |
903 if (defined(invoker.args)) { | 1007 if (defined(invoker.args)) { |
904 args += invoker.args | 1008 args += invoker.args |
905 } | 1009 } |
906 } | 1010 } |
907 } | 1011 } |
908 | 1012 |
909 template("copy_ex") { | 1013 template("copy_ex") { |
910 if (defined(invoker.testonly)) { testonly = invoker.testonly } | 1014 if (defined(invoker.testonly)) { |
| 1015 testonly = invoker.testonly |
| 1016 } |
911 | 1017 |
912 action(target_name) { | 1018 action(target_name) { |
913 script = "//build/android/gyp/copy_ex.py" | 1019 script = "//build/android/gyp/copy_ex.py" |
914 | 1020 |
915 if (defined(invoker.deps)) { deps = invoker.deps } | 1021 if (defined(invoker.deps)) { |
| 1022 deps = invoker.deps |
| 1023 } |
916 | 1024 |
917 sources = [] | 1025 sources = [] |
918 if (defined(invoker.sources)) { | 1026 if (defined(invoker.sources)) { |
919 sources += invoker.sources | 1027 sources += invoker.sources |
920 } | 1028 } |
921 | 1029 |
922 inputs = [] | 1030 inputs = [] |
923 if (defined(invoker.inputs)) { | 1031 if (defined(invoker.inputs)) { |
924 inputs += invoker.inputs | 1032 inputs += invoker.inputs |
925 } | 1033 } |
926 | 1034 |
927 depfile = "$target_gen_dir/$target_name.d" | 1035 depfile = "$target_gen_dir/$target_name.d" |
928 outputs = [ | 1036 outputs = [ depfile ] |
929 depfile, | |
930 ] | |
931 | 1037 |
932 args = [ | 1038 args = [ |
933 "--depfile", rebase_path(depfile, root_build_dir), | 1039 "--depfile", |
934 "--dest", rebase_path(invoker.dest, root_build_dir), | 1040 rebase_path(depfile, root_build_dir), |
| 1041 "--dest", |
| 1042 rebase_path(invoker.dest, root_build_dir), |
935 ] | 1043 ] |
936 rebased_sources = rebase_path(sources, root_build_dir) | 1044 rebased_sources = rebase_path(sources, root_build_dir) |
937 args += [ "--files=$rebased_sources" ] | 1045 args += [ "--files=$rebased_sources" ] |
938 | 1046 |
939 if (defined(invoker.clear_dir) && invoker.clear_dir) { | 1047 if (defined(invoker.clear_dir) && invoker.clear_dir) { |
940 args += ["--clear"] | 1048 args += [ "--clear" ] |
941 } | 1049 } |
942 | 1050 |
943 if (defined(invoker.args)) { | 1051 if (defined(invoker.args)) { |
944 args += invoker.args | 1052 args += invoker.args |
945 } | 1053 } |
946 } | 1054 } |
947 } | 1055 } |
OLD | NEW |