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

Side by Side Diff: build/java_apk.gypi

Issue 1438853002: Remove all .gyp and .gypi files. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month 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
« no previous file with comments | « build/java_aidl.gypi ('k') | build/java_prebuilt.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 # This file is meant to be included into a target to provide a rule
6 # to build Android APKs in a consistent manner.
7 #
8 # To use this, create a gyp target with the following form:
9 # {
10 # 'target_name': 'my_package_apk',
11 # 'type': 'none',
12 # 'variables': {
13 # 'apk_name': 'MyPackage',
14 # 'java_in_dir': 'path/to/package/root',
15 # 'resource_dir': 'path/to/package/root/res',
16 # },
17 # 'includes': ['path/to/this/gypi/file'],
18 # }
19 #
20 # Required variables:
21 # apk_name - The final apk will be named <apk_name>.apk
22 # java_in_dir - The top-level java directory. The src should be in
23 # <(java_in_dir)/src.
24 # Optional/automatic variables:
25 # additional_input_paths - These paths will be included in the 'inputs' list to
26 # ensure that this target is rebuilt when one of these paths changes.
27 # additional_res_packages - Package names of R.java files generated in addition
28 # to the default package name defined in AndroidManifest.xml.
29 # additional_src_dirs - Additional directories with .java files to be compiled
30 # and included in the output of this target.
31 # additional_bundled_libs - Additional libraries what will be stripped and
32 # bundled in the apk.
33 # asset_location - The directory where assets are located.
34 # create_density_splits - Whether to create density-based apk splits. Splits
35 # are supported only for minSdkVersion >= 21.
36 # generated_src_dirs - Same as additional_src_dirs except used for .java files
37 # that are generated at build time. This should be set automatically by a
38 # target's dependencies. The .java files in these directories are not
39 # included in the 'inputs' list (unlike additional_src_dirs).
40 # input_jars_paths - The path to jars to be included in the classpath. This
41 # should be filled automatically by depending on the appropriate targets.
42 # is_test_apk - Set to 1 if building a test apk. This prevents resources from
43 # dependencies from being re-included.
44 # native_lib_target - The target_name of the target which generates the final
45 # shared library to be included in this apk. A stripped copy of the
46 # library will be included in the apk.
47 # resource_dir - The directory for resources.
48 # shared_resources - Make a resource package that can be loaded by a different
49 # application at runtime to access the package's resources.
50 # R_package - A custom Java package to generate the resource file R.java in.
51 # By default, the package given in AndroidManifest.xml will be used.
52 # include_all_resources - Set to 1 to include all resource IDs in all generated
53 # R.java files.
54 # use_chromium_linker - Enable the content dynamic linker that allows sharing t he
55 # RELRO section of the native libraries between the different processes.
56 # load_library_from_zip - When using the dynamic linker, load the library
57 # directly out of the zip file.
58 # use_relocation_packer - Enable relocation packing. Relies on the chromium
59 # linker, so use_chromium_linker must also be enabled.
60 # enable_chromium_linker_tests - Enable the content dynamic linker test support
61 # code. This allows a test APK to inject a Linker.TestRunner instance at
62 # runtime. Should only be used by the chromium_linker_test_apk target!!
63 # never_lint - Set to 1 to not run lint on this target.
64 # java_in_dir_suffix - To override the /src suffix on java_in_dir.
65 # app_manifest_version_name - set the apps 'human readable' version number.
66 # app_manifest_version_code - set the apps version number.
67 {
68 'variables': {
69 'tested_apk_obfuscated_jar_path%': '/',
70 'tested_apk_dex_path%': '/',
71 'additional_input_paths': [],
72 'create_density_splits%': 0,
73 'input_jars_paths': [],
74 'library_dexed_jars_paths': [],
75 'additional_src_dirs': [],
76 'generated_src_dirs': [],
77 'app_manifest_version_name%': '<(android_app_version_name)',
78 'app_manifest_version_code%': '<(android_app_version_code)',
79 # aapt generates this proguard.txt.
80 'generated_proguard_file': '<(intermediate_dir)/proguard.txt',
81 'proguard_enabled%': 'false',
82 'proguard_flags_paths': ['<(generated_proguard_file)'],
83 'jar_name': 'chromium_apk_<(_target_name).jar',
84 'resource_dir%':'<(DEPTH)/build/android/ant/empty/res',
85 'R_package%':'',
86 'include_all_resources%': 0,
87 'additional_R_text_files': [],
88 'dependencies_res_zip_paths': [],
89 'additional_res_packages': [],
90 'additional_bundled_libs%': [],
91 'is_test_apk%': 0,
92 'extensions_to_not_compress%': '',
93 'resource_input_paths': [],
94 'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
95 'asset_location%': '<(intermediate_dir)/assets',
96 'codegen_stamp': '<(intermediate_dir)/codegen.stamp',
97 'package_input_paths': [],
98 'ordered_libraries_file': '<(intermediate_dir)/native_libraries.json',
99 'additional_ordered_libraries_file': '<(intermediate_dir)/additional_native_ libraries.json',
100 'native_libraries_template': '<(DEPTH)/base/android/java/templates/NativeLib raries.template',
101 'native_libraries_java_dir': '<(intermediate_dir)/native_libraries_java/',
102 'native_libraries_java_file': '<(native_libraries_java_dir)/NativeLibraries. java',
103 'native_libraries_java_stamp': '<(intermediate_dir)/native_libraries_java.st amp',
104 'native_libraries_template_data_dir': '<(intermediate_dir)/native_libraries/ ',
105 'native_libraries_template_data_file': '<(native_libraries_template_data_dir )/native_libraries_array.h',
106 'native_libraries_template_version_file': '<(native_libraries_template_data_ dir)/native_libraries_version.h',
107 'compile_stamp': '<(intermediate_dir)/compile.stamp',
108 'lint_stamp': '<(intermediate_dir)/lint.stamp',
109 'lint_result': '<(intermediate_dir)/lint_result.xml',
110 'lint_config': '<(intermediate_dir)/lint_config.xml',
111 'never_lint%': 0,
112 'findbugs_stamp': '<(intermediate_dir)/findbugs.stamp',
113 'run_findbugs%': 0,
114 'java_in_dir_suffix%': '/src',
115 'instr_stamp': '<(intermediate_dir)/instr.stamp',
116 'jar_stamp': '<(intermediate_dir)/jar.stamp',
117 'obfuscate_stamp': '<(intermediate_dir)/obfuscate.stamp',
118 'pack_arm_relocations_stamp': '<(intermediate_dir)/pack_arm_relocations.stam p',
119 'strip_stamp': '<(intermediate_dir)/strip.stamp',
120 'stripped_libraries_dir': '<(intermediate_dir)/stripped_libraries',
121 'strip_additional_stamp': '<(intermediate_dir)/strip_additional.stamp',
122 'version_stamp': '<(intermediate_dir)/version.stamp',
123 'javac_includes': [],
124 'jar_excluded_classes': [],
125 'javac_jar_path': '<(intermediate_dir)/<(_target_name).javac.jar',
126 'jar_path': '<(PRODUCT_DIR)/lib.java/<(jar_name)',
127 'obfuscated_jar_path': '<(intermediate_dir)/obfuscated.jar',
128 'test_jar_path': '<(PRODUCT_DIR)/test.lib.java/<(apk_name).jar',
129 'dex_path': '<(intermediate_dir)/classes.dex',
130 'emma_device_jar': '<(android_sdk_root)/tools/lib/emma_device.jar',
131 'android_manifest_path%': '<(java_in_dir)/AndroidManifest.xml',
132 'split_android_manifest_path': '<(intermediate_dir)/split-manifests/<(androi d_app_abi)/AndroidManifest.xml',
133 'push_stamp': '<(intermediate_dir)/push.stamp',
134 'link_stamp': '<(intermediate_dir)/link.stamp',
135 'resource_zip_path': '<(intermediate_dir)/<(_target_name).resources.zip',
136 'shared_resources%': 0,
137 'final_apk_path%': '<(PRODUCT_DIR)/apks/<(apk_name).apk',
138 'final_apk_path_no_extension%': '<(PRODUCT_DIR)/apks/<(apk_name)',
139 'final_abi_split_apk_path%': '<(PRODUCT_DIR)/apks/<(apk_name)-abi-<(android_ app_abi).apk',
140 'incomplete_apk_path': '<(intermediate_dir)/<(apk_name)-incomplete.apk',
141 'apk_install_record': '<(intermediate_dir)/apk_install.record.stamp',
142 'device_intermediate_dir': '/data/data/org.chromium.gyp_managed_install/<(_t arget_name)/<(CONFIGURATION_NAME)',
143 'symlink_script_host_path': '<(intermediate_dir)/create_symlinks.sh',
144 'symlink_script_device_path': '<(device_intermediate_dir)/create_symlinks.sh ',
145 'create_standalone_apk%': 1,
146 'res_v14_skip%': 0,
147 'variables': {
148 'variables': {
149 'native_lib_target%': '',
150 'native_lib_version_name%': '',
151 'use_chromium_linker%' : 0,
152 'use_relocation_packer%' : 0,
153 'enable_chromium_linker_tests%': 0,
154 'is_test_apk%': 0,
155 'unsigned_apk_path': '<(intermediate_dir)/<(apk_name)-unsigned.apk',
156 'unsigned_abi_split_apk_path': '<(intermediate_dir)/<(apk_name)-abi-<(an droid_app_abi)-unsigned.apk',
157 'create_abi_split%': 0,
158 },
159 'unsigned_apk_path': '<(unsigned_apk_path)',
160 'unsigned_abi_split_apk_path': '<(unsigned_abi_split_apk_path)',
161 'create_abi_split%': '<(create_abi_split)',
162 'conditions': [
163 ['gyp_managed_install == 1 and native_lib_target != ""', {
164 'conditions': [
165 ['create_abi_split == 0', {
166 'unsigned_standalone_apk_path': '<(intermediate_dir)/<(apk_name)-s tandalone-unsigned.apk',
167 }, {
168 'unsigned_standalone_apk_path': '<(intermediate_dir)/<(apk_name)-a bi-<(android_app_abi)-standalone-unsigned.apk',
169 }],
170 ],
171 }, {
172 'unsigned_standalone_apk_path': '<(unsigned_apk_path)',
173 }],
174 ['gyp_managed_install == 1', {
175 'apk_package_native_libs_dir': '<(intermediate_dir)/libs.managed',
176 }, {
177 'apk_package_native_libs_dir': '<(intermediate_dir)/libs',
178 }],
179 ['is_test_apk == 0 and emma_coverage != 0', {
180 'emma_instrument%': 1,
181 },{
182 'emma_instrument%': 0,
183 }],
184 # When using abi splits, the abi split is modified by
185 # gyp_managed_install rather than the main .apk
186 ['create_abi_split == 1', {
187 'managed_input_apk_path': '<(unsigned_abi_split_apk_path)',
188 }, {
189 'managed_input_apk_path': '<(unsigned_apk_path)',
190 }],
191 ],
192 },
193 'native_lib_target%': '',
194 'native_lib_version_name%': '',
195 'use_chromium_linker%' : 0,
196 'load_library_from_zip%' : 0,
197 'use_relocation_packer%' : 0,
198 'enable_chromium_linker_tests%': 0,
199 'emma_instrument%': '<(emma_instrument)',
200 'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)',
201 'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)',
202 'unsigned_apk_path': '<(unsigned_apk_path)',
203 'unsigned_abi_split_apk_path': '<(unsigned_abi_split_apk_path)',
204 'create_abi_split%': '<(create_abi_split)',
205 'managed_input_apk_path': '<(managed_input_apk_path)',
206 'libchromium_android_linker': 'libchromium_android_linker.>(android_product_ extension)',
207 'extra_native_libs': [],
208 'native_lib_placeholder_stamp': '<(apk_package_native_libs_dir)/<(android_ap p_abi)/native_lib_placeholder.stamp',
209 'native_lib_placeholders': [],
210 'main_apk_name': '<(apk_name)',
211 },
212 # Pass the jar path to the apk's "fake" jar target. This would be better as
213 # direct_dependent_settings, but a variable set by a direct_dependent_settings
214 # cannot be lifted in a dependent to all_dependent_settings.
215 'all_dependent_settings': {
216 'conditions': [
217 ['proguard_enabled == "true"', {
218 'variables': {
219 'proguard_enabled': 'true',
220 }
221 }],
222 ],
223 'variables': {
224 'apk_output_jar_path': '<(jar_path)',
225 'tested_apk_obfuscated_jar_path': '<(obfuscated_jar_path)',
226 'tested_apk_dex_path': '<(dex_path)',
227 },
228 },
229 'conditions': [
230 ['resource_dir!=""', {
231 'variables': {
232 'resource_input_paths': [ '<!@(find <(resource_dir) -name "*")' ]
233 },
234 }],
235 ['R_package != ""', {
236 'variables': {
237 # We generate R.java in package R_package (in addition to the package
238 # listed in the AndroidManifest.xml, which is unavoidable).
239 'additional_res_packages': ['<(R_package)'],
240 'additional_R_text_files': ['<(intermediate_dir)/R.txt'],
241 },
242 }],
243 ['native_lib_target != "" and component == "shared_library"', {
244 'dependencies': [
245 '<(DEPTH)/build/android/setup.gyp:copy_system_libraries',
246 ],
247 }],
248 ['use_chromium_linker == 1', {
249 'dependencies': [
250 '<(DEPTH)/base/base.gyp:chromium_android_linker',
251 ],
252 }],
253 ['native_lib_target != ""', {
254 'variables': {
255 'conditions': [
256 ['use_chromium_linker == 1', {
257 'variables': {
258 'chromium_linker_path': [
259 '<(SHARED_LIB_DIR)/<(libchromium_android_linker)',
260 ],
261 }
262 }, {
263 'variables': {
264 'chromium_linker_path': [],
265 },
266 }],
267 ],
268 'generated_src_dirs': [ '<(native_libraries_java_dir)' ],
269 'native_libs_paths': [
270 '<(SHARED_LIB_DIR)/<(native_lib_target).>(android_product_extension)',
271 '<@(chromium_linker_path)'
272 ],
273 'package_input_paths': [
274 '<(apk_package_native_libs_dir)/<(android_app_abi)/gdbserver',
275 ],
276 },
277 'copies': [
278 {
279 # gdbserver is always copied into the APK's native libs dir. The ant
280 # build scripts (apkbuilder task) will only include it in a debug
281 # build.
282 'destination': '<(apk_package_native_libs_dir)/<(android_app_abi)',
283 'files': [
284 '<(android_gdbserver)',
285 ],
286 },
287 ],
288 'actions': [
289 {
290 'variables': {
291 'input_libraries': [
292 '<@(native_libs_paths)',
293 '<@(extra_native_libs)',
294 ],
295 },
296 'includes': ['../build/android/write_ordered_libraries.gypi'],
297 },
298 {
299 'action_name': 'native_libraries_<(_target_name)',
300 'variables': {
301 'conditions': [
302 ['use_chromium_linker == 1', {
303 'variables': {
304 'linker_gcc_preprocess_defines': [
305 '--defines', 'ENABLE_CHROMIUM_LINKER',
306 ],
307 }
308 }, {
309 'variables': {
310 'linker_gcc_preprocess_defines': [],
311 },
312 }],
313 ['load_library_from_zip == 1', {
314 'variables': {
315 'linker_load_from_zip_file_preprocess_defines': [
316 '--defines', 'ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE',
317 ],
318 }
319 }, {
320 'variables': {
321 'linker_load_from_zip_file_preprocess_defines': [],
322 },
323 }],
324 ['enable_chromium_linker_tests == 1', {
325 'variables': {
326 'linker_tests_gcc_preprocess_defines': [
327 '--defines', 'ENABLE_CHROMIUM_LINKER_TESTS',
328 ],
329 }
330 }, {
331 'variables': {
332 'linker_tests_gcc_preprocess_defines': [],
333 },
334 }],
335 ],
336 'gcc_preprocess_defines': [
337 '<@(linker_load_from_zip_file_preprocess_defines)',
338 '<@(linker_gcc_preprocess_defines)',
339 '<@(linker_tests_gcc_preprocess_defines)',
340 ],
341 },
342 'message': 'Creating NativeLibraries.java for <(_target_name)',
343 'inputs': [
344 '<(DEPTH)/build/android/gyp/util/build_utils.py',
345 '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
346 '<(ordered_libraries_file)',
347 '<(native_libraries_template)',
348 ],
349 'outputs': [
350 '<(native_libraries_java_stamp)',
351 ],
352 'action': [
353 'python', '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
354 '--include-path=',
355 '--output=<(native_libraries_java_file)',
356 '--template=<(native_libraries_template)',
357 '--stamp=<(native_libraries_java_stamp)',
358 '--defines', 'NATIVE_LIBRARIES_LIST=@FileArg(<(ordered_libraries_fil e):java_libraries_list)',
359 '--defines', 'NATIVE_LIBRARIES_VERSION_NUMBER="<(native_lib_version_ name)"',
360 '<@(gcc_preprocess_defines)',
361 ],
362 },
363 {
364 'action_name': 'strip_native_libraries',
365 'variables': {
366 'ordered_libraries_file%': '<(ordered_libraries_file)',
367 'stripped_libraries_dir%': '<(stripped_libraries_dir)',
368 'input_paths': [
369 '<@(native_libs_paths)',
370 '<@(extra_native_libs)',
371 ],
372 'stamp': '<(strip_stamp)'
373 },
374 'includes': ['../build/android/strip_native_libraries.gypi'],
375 },
376 {
377 'action_name': 'insert_chromium_version',
378 'variables': {
379 'ordered_libraries_file%': '<(ordered_libraries_file)',
380 'stripped_libraries_dir%': '<(stripped_libraries_dir)',
381 'version_string': '<(native_lib_version_name)',
382 'input_paths': [
383 '<(strip_stamp)',
384 ],
385 'stamp': '<(version_stamp)'
386 },
387 'includes': ['../build/android/insert_chromium_version.gypi'],
388 },
389 {
390 'action_name': 'pack_arm_relocations',
391 'variables': {
392 'conditions': [
393 ['use_chromium_linker == 1 and use_relocation_packer == 1 and prof iling != 1', {
394 'enable_packing': 1,
395 }, {
396 'enable_packing': 0,
397 }],
398 ],
399 'exclude_packing_list': [
400 '<(libchromium_android_linker)',
401 ],
402 'ordered_libraries_file%': '<(ordered_libraries_file)',
403 'stripped_libraries_dir%': '<(stripped_libraries_dir)',
404 'packed_libraries_dir': '<(libraries_source_dir)',
405 'input_paths': [
406 '<(version_stamp)'
407 ],
408 'stamp': '<(pack_arm_relocations_stamp)',
409 },
410 'includes': ['../build/android/pack_arm_relocations.gypi'],
411 },
412 {
413 'variables': {
414 'input_libraries': [
415 '<@(additional_bundled_libs)',
416 ],
417 'ordered_libraries_file': '<(additional_ordered_libraries_file)',
418 'subtarget': '_additional_libraries',
419 },
420 'includes': ['../build/android/write_ordered_libraries.gypi'],
421 },
422 {
423 'action_name': 'strip_additional_libraries',
424 'variables': {
425 'ordered_libraries_file': '<(additional_ordered_libraries_file)',
426 'stripped_libraries_dir': '<(libraries_source_dir)',
427 'input_paths': [
428 '<@(additional_bundled_libs)',
429 '<(strip_stamp)',
430 ],
431 'stamp': '<(strip_additional_stamp)'
432 },
433 'includes': ['../build/android/strip_native_libraries.gypi'],
434 },
435 {
436 'action_name': 'Create native lib placeholder files for previous relea ses',
437 'variables': {
438 'placeholders': ['<@(native_lib_placeholders)'],
439 'conditions': [
440 ['gyp_managed_install == 1', {
441 # This "library" just needs to be put in the .apk. It is not loa ded
442 # at runtime.
443 'placeholders': ['libfix.crbug.384638.so'],
444 }]
445 ],
446 },
447 'inputs': [
448 '<(DEPTH)/build/android/gyp/create_placeholder_files.py',
449 ],
450 'outputs': [
451 '<(native_lib_placeholder_stamp)',
452 ],
453 'action': [
454 'python', '<(DEPTH)/build/android/gyp/create_placeholder_files.py',
455 '--dest-lib-dir=<(apk_package_native_libs_dir)/<(android_app_abi)/',
456 '--stamp=<(native_lib_placeholder_stamp)',
457 '<@(placeholders)',
458 ],
459 },
460 ],
461 'conditions': [
462 ['gyp_managed_install == 1', {
463 'variables': {
464 'libraries_top_dir': '<(intermediate_dir)/lib.stripped',
465 'libraries_source_dir': '<(libraries_top_dir)/lib/<(android_app_abi) ',
466 'device_library_dir': '<(device_intermediate_dir)/lib.stripped',
467 'configuration_name': '<(CONFIGURATION_NAME)',
468 },
469 'dependencies': [
470 '<(DEPTH)/build/android/setup.gyp:get_build_device_configurations',
471 '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_ commands',
472 ],
473 'actions': [
474 {
475 'includes': ['../build/android/push_libraries.gypi'],
476 },
477 {
478 'action_name': 'create device library symlinks',
479 'message': 'Creating links on device for <(_target_name)',
480 'inputs': [
481 '<(DEPTH)/build/android/gyp/util/build_utils.py',
482 '<(DEPTH)/build/android/gyp/create_device_library_links.py',
483 '<(apk_install_record)',
484 '<(build_device_config_path)',
485 '<(ordered_libraries_file)',
486 ],
487 'outputs': [
488 '<(link_stamp)'
489 ],
490 'action': [
491 'python', '<(DEPTH)/build/android/gyp/create_device_library_link s.py',
492 '--build-device-configuration=<(build_device_config_path)',
493 '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
494 '--script-host-path=<(symlink_script_host_path)',
495 '--script-device-path=<(symlink_script_device_path)',
496 '--target-dir=<(device_library_dir)',
497 '--apk=<(incomplete_apk_path)',
498 '--stamp=<(link_stamp)',
499 '--configuration-name=<(CONFIGURATION_NAME)',
500 ],
501 },
502 ],
503 'conditions': [
504 ['create_standalone_apk == 1', {
505 'actions': [
506 {
507 'action_name': 'create standalone APK',
508 'variables': {
509 'inputs': [
510 '<(ordered_libraries_file)',
511 '<(strip_additional_stamp)',
512 '<(pack_arm_relocations_stamp)',
513 ],
514 'output_apk_path': '<(unsigned_standalone_apk_path)',
515 'libraries_top_dir%': '<(libraries_top_dir)',
516 'input_apk_path': '<(managed_input_apk_path)',
517 },
518 'includes': [ 'android/create_standalone_apk_action.gypi' ],
519 },
520 ],
521 }],
522 ],
523 }, {
524 # gyp_managed_install != 1
525 'variables': {
526 'libraries_source_dir': '<(apk_package_native_libs_dir)/<(android_ap p_abi)',
527 'package_input_paths': [
528 '<(strip_additional_stamp)',
529 '<(pack_arm_relocations_stamp)',
530 ],
531 },
532 }],
533 ],
534 }], # native_lib_target != ''
535 ['gyp_managed_install == 0 or create_standalone_apk == 1 or create_abi_split == 1', {
536 'dependencies': [
537 '<(DEPTH)/build/android/rezip.gyp:rezip_apk_jar',
538 ],
539 }],
540 ['create_abi_split == 1 or gyp_managed_install == 0 or create_standalone_apk == 1', {
541 'actions': [
542 {
543 'action_name': 'finalize_base',
544 'variables': {
545 'output_apk_path': '<(final_apk_path)',
546 'conditions': [
547 ['create_abi_split == 0', {
548 'input_apk_path': '<(unsigned_standalone_apk_path)',
549 }, {
550 'input_apk_path': '<(unsigned_apk_path)',
551 'load_library_from_zip': 0,
552 }]
553 ],
554 },
555 'includes': [ 'android/finalize_apk_action.gypi']
556 },
557 ],
558 }],
559 ['create_abi_split == 1', {
560 'actions': [
561 {
562 'action_name': 'generate_split_manifest_<(_target_name)',
563 'inputs': [
564 '<(DEPTH)/build/android/gyp/util/build_utils.py',
565 '<(DEPTH)/build/android/gyp/generate_split_manifest.py',
566 '<(android_manifest_path)',
567 ],
568 'outputs': [
569 '<(split_android_manifest_path)',
570 ],
571 'action': [
572 'python', '<(DEPTH)/build/android/gyp/generate_split_manifest.py',
573 '--main-manifest', '<(android_manifest_path)',
574 '--out-manifest', '<(split_android_manifest_path)',
575 '--split', 'abi_<(android_app_abi)',
576 ],
577 },
578 {
579 'variables': {
580 'apk_name': '<(main_apk_name)-abi-<(android_app_abi)',
581 'asset_location': '',
582 'android_manifest_path': '<(split_android_manifest_path)',
583 'create_density_splits': 0,
584 },
585 'includes': [ 'android/package_resources_action.gypi' ],
586 },
587 {
588 'variables': {
589 'apk_name': '<(main_apk_name)-abi-<(android_app_abi)',
590 'apk_path': '<(unsigned_abi_split_apk_path)',
591 'has_code': 0,
592 'native_libs_dir': '<(apk_package_native_libs_dir)',
593 'extra_inputs': ['<(native_lib_placeholder_stamp)'],
594 },
595 'includes': ['android/apkbuilder_action.gypi'],
596 },
597 ],
598 }],
599 ['create_abi_split == 1 and (gyp_managed_install == 0 or create_standalone_a pk == 1)', {
600 'actions': [
601 {
602 'action_name': 'finalize_split',
603 'variables': {
604 'output_apk_path': '<(final_abi_split_apk_path)',
605 'conditions': [
606 ['gyp_managed_install == 1', {
607 'input_apk_path': '<(unsigned_standalone_apk_path)',
608 }, {
609 'input_apk_path': '<(unsigned_abi_split_apk_path)',
610 }],
611 ],
612 },
613 'includes': [ 'android/finalize_apk_action.gypi']
614 },
615 ],
616 }],
617 ['gyp_managed_install == 1', {
618 'actions': [
619 {
620 'action_name': 'finalize incomplete apk',
621 'variables': {
622 'load_library_from_zip': 0,
623 'input_apk_path': '<(managed_input_apk_path)',
624 'output_apk_path': '<(incomplete_apk_path)',
625 },
626 'includes': [ 'android/finalize_apk_action.gypi']
627 },
628 {
629 'action_name': 'apk_install_<(_target_name)',
630 'message': 'Installing <(apk_name).apk',
631 'inputs': [
632 '<(DEPTH)/build/android/gyp/util/build_utils.py',
633 '<(DEPTH)/build/android/gyp/apk_install.py',
634 '<(build_device_config_path)',
635 '<(incomplete_apk_path)',
636 ],
637 'outputs': [
638 '<(apk_install_record)',
639 ],
640 'action': [
641 'python', '<(DEPTH)/build/android/gyp/apk_install.py',
642 '--build-device-configuration=<(build_device_config_path)',
643 '--install-record=<(apk_install_record)',
644 '--configuration-name=<(CONFIGURATION_NAME)',
645 '--android-sdk-tools', '<(android_sdk_tools)',
646 ],
647 'conditions': [
648 ['create_abi_split == 1', {
649 'inputs': [
650 '<(final_apk_path)',
651 ],
652 'action': [
653 '--apk-path=<(final_apk_path)',
654 '--split-apk-path=<(incomplete_apk_path)',
655 ],
656 }, {
657 'action': [
658 '--apk-path=<(incomplete_apk_path)',
659 ],
660 }],
661 ['create_density_splits == 1', {
662 'inputs': [
663 '<(final_apk_path_no_extension)-density-hdpi.apk',
664 '<(final_apk_path_no_extension)-density-xhdpi.apk',
665 '<(final_apk_path_no_extension)-density-xxhdpi.apk',
666 '<(final_apk_path_no_extension)-density-tvdpi.apk',
667 ],
668 'action': [
669 '--split-apk-path=<(final_apk_path_no_extension)-density-hdpi.ap k',
670 '--split-apk-path=<(final_apk_path_no_extension)-density-xhdpi.a pk',
671 '--split-apk-path=<(final_apk_path_no_extension)-density-xxhdpi. apk',
672 '--split-apk-path=<(final_apk_path_no_extension)-density-tvdpi.a pk',
673 ],
674 }],
675 ],
676 },
677 ],
678 }],
679 ['create_density_splits == 1', {
680 'actions': [
681 {
682 'action_name': 'finalize_density_splits',
683 'variables': {
684 'density_splits': 1,
685 },
686 'includes': [ 'android/finalize_splits_action.gypi']
687 },
688 ],
689 }],
690 ['is_test_apk == 1', {
691 'dependencies': [
692 '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_comm ands',
693 '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
694 ]
695 }],
696 ['run_findbugs == 1', {
697 'actions': [
698 {
699 'action_name': 'findbugs_<(_target_name)',
700 'message': 'Running findbugs on <(_target_name)',
701 'inputs': [
702 '<(DEPTH)/build/android/findbugs_diff.py',
703 '<(DEPTH)/build/android/findbugs_filter/findbugs_exclude.xml',
704 '<(DEPTH)/build/android/pylib/utils/findbugs.py',
705 '>@(input_jars_paths)',
706 '<(jar_path)',
707 '<(compile_stamp)',
708 ],
709 'outputs': [
710 '<(findbugs_stamp)',
711 ],
712 'action': [
713 'python', '<(DEPTH)/build/android/findbugs_diff.py',
714 '--auxclasspath-gyp', '>(input_jars_paths)',
715 '--stamp', '<(findbugs_stamp)',
716 '<(jar_path)',
717 ],
718 },
719 ],
720 },
721 ]
722 ],
723 'dependencies': [
724 '<(DEPTH)/tools/android/md5sum/md5sum.gyp:md5sum',
725 ],
726 'actions': [
727 {
728 'action_name': 'process_resources',
729 'message': 'processing resources for <(_target_name)',
730 'variables': {
731 # Write the inputs list to a file, so that its mtime is updated when
732 # the list of inputs changes.
733 'inputs_list_file': '>|(apk_codegen.<(_target_name).gypcmd >@(additional _input_paths) >@(resource_input_paths))',
734 'process_resources_options': [],
735 'conditions': [
736 ['is_test_apk == 1', {
737 'dependencies_res_zip_paths=': [],
738 'additional_res_packages=': [],
739 }],
740 ['res_v14_skip == 1', {
741 'process_resources_options+': ['--v14-skip']
742 }],
743 ['shared_resources == 1', {
744 'process_resources_options+': ['--shared-resources']
745 }],
746 ['R_package != ""', {
747 'process_resources_options+': ['--custom-package', '<(R_package)']
748 }],
749 ['include_all_resources == 1', {
750 'process_resources_options+': ['--include-all-resources']
751 }]
752 ],
753 },
754 'inputs': [
755 '<(DEPTH)/build/android/gyp/util/build_utils.py',
756 '<(DEPTH)/build/android/gyp/process_resources.py',
757 '<(android_manifest_path)',
758 '>@(additional_input_paths)',
759 '>@(resource_input_paths)',
760 '>@(dependencies_res_zip_paths)',
761 '>(inputs_list_file)',
762 ],
763 'outputs': [
764 '<(resource_zip_path)',
765 '<(generated_proguard_file)',
766 '<(codegen_stamp)',
767 ],
768 'action': [
769 'python', '<(DEPTH)/build/android/gyp/process_resources.py',
770 '--android-sdk', '<(android_sdk)',
771 '--aapt-path', '<(android_aapt_path)',
772
773 '--android-manifest', '<(android_manifest_path)',
774 '--dependencies-res-zips', '>(dependencies_res_zip_paths)',
775
776 '--extra-res-packages', '>(additional_res_packages)',
777 '--extra-r-text-files', '>(additional_R_text_files)',
778
779 '--proguard-file', '<(generated_proguard_file)',
780
781 '--resource-dirs', '<(resource_dir)',
782 '--resource-zip-out', '<(resource_zip_path)',
783
784 '--R-dir', '<(intermediate_dir)/gen',
785
786 '--stamp', '<(codegen_stamp)',
787
788 '<@(process_resources_options)',
789 ],
790 },
791 {
792 'action_name': 'javac_<(_target_name)',
793 'message': 'Compiling java for <(_target_name)',
794 'variables': {
795 'gen_src_dirs': [
796 '<(intermediate_dir)/gen',
797 '>@(generated_src_dirs)',
798 ],
799 # If there is a separate find for additional_src_dirs, it will find the
800 # wrong .java files when additional_src_dirs is empty.
801 # TODO(thakis): Gyp caches >! evaluation by command. Both java.gypi and
802 # java_apk.gypi evaluate the same command, and at the moment two targets
803 # set java_in_dir to "java". Add a dummy comment here to make sure
804 # that the two targets (one uses java.gypi, the other java_apk.gypi)
805 # get distinct source lists. Medium-term, make targets list all their
806 # Java files instead of using find. (As is, this will be broken if two
807 # targets use the same java_in_dir and both use java_apk.gypi or
808 # both use java.gypi.)
809 'java_sources': ['>!@(find >(java_in_dir)>(java_in_dir_suffix) >(additio nal_src_dirs) -name "*.java" # apk)'],
810
811 },
812 'inputs': [
813 '<(DEPTH)/build/android/gyp/util/build_utils.py',
814 '<(DEPTH)/build/android/gyp/javac.py',
815 '>@(java_sources)',
816 '>@(input_jars_paths)',
817 '<(codegen_stamp)',
818 ],
819 'conditions': [
820 ['native_lib_target != ""', {
821 'inputs': [ '<(native_libraries_java_stamp)' ],
822 }],
823 ],
824 'outputs': [
825 '<(compile_stamp)',
826 '<(javac_jar_path)',
827 ],
828 'action': [
829 'python', '<(DEPTH)/build/android/gyp/javac.py',
830 '--classpath=>(input_jars_paths) <(android_sdk_jar)',
831 '--src-gendirs=>(gen_src_dirs)',
832 '--javac-includes=<(javac_includes)',
833 '--chromium-code=<(chromium_code)',
834 '--jar-path=<(javac_jar_path)',
835 '--jar-excluded-classes=<(jar_excluded_classes)',
836 '--stamp=<(compile_stamp)',
837 '>@(java_sources)',
838 ],
839 },
840 {
841 'action_name': 'instr_jar_<(_target_name)',
842 'message': 'Instrumenting <(_target_name) jar',
843 'variables': {
844 'input_path': '<(javac_jar_path)',
845 'output_path': '<(jar_path)',
846 'stamp_path': '<(instr_stamp)',
847 'instr_type': 'jar',
848 },
849 'outputs': [
850 '<(instr_stamp)',
851 '<(jar_path)',
852 ],
853 'inputs': [
854 '<(javac_jar_path)',
855 ],
856 'includes': [ 'android/instr_action.gypi' ],
857 },
858 {
859 'variables': {
860 'src_dirs': [
861 '<(java_in_dir)<(java_in_dir_suffix)',
862 '>@(additional_src_dirs)',
863 ],
864 'lint_jar_path': '<(jar_path)',
865 'stamp_path': '<(lint_stamp)',
866 'result_path': '<(lint_result)',
867 'config_path': '<(lint_config)',
868 },
869 'outputs': [
870 '<(lint_stamp)',
871 ],
872 'includes': [ 'android/lint_action.gypi' ],
873 },
874 {
875 'action_name': 'obfuscate_<(_target_name)',
876 'message': 'Obfuscating <(_target_name)',
877 'variables': {
878 'additional_obfuscate_options': [],
879 'additional_obfuscate_input_paths': [],
880 'proguard_out_dir': '<(intermediate_dir)/proguard',
881 'proguard_input_jar_paths': [
882 '>@(input_jars_paths)',
883 '<(jar_path)',
884 ],
885 'target_conditions': [
886 ['is_test_apk == 1', {
887 'additional_obfuscate_options': [
888 '--testapp',
889 ],
890 }],
891 ['is_test_apk == 1 and tested_apk_obfuscated_jar_path != "/"', {
892 'additional_obfuscate_options': [
893 '--tested-apk-obfuscated-jar-path', '>(tested_apk_obfuscated_jar_p ath)',
894 ],
895 'additional_obfuscate_input_paths': [
896 '>(tested_apk_obfuscated_jar_path).info',
897 ],
898 }],
899 ['proguard_enabled == "true"', {
900 'additional_obfuscate_options': [
901 '--proguard-enabled',
902 ],
903 }],
904 ],
905 'obfuscate_input_jars_paths': [
906 '>@(input_jars_paths)',
907 '<(jar_path)',
908 ],
909 },
910 'conditions': [
911 ['is_test_apk == 1', {
912 'outputs': [
913 '<(test_jar_path)',
914 ],
915 }],
916 ],
917 'inputs': [
918 '<(DEPTH)/build/android/gyp/apk_obfuscate.py',
919 '<(DEPTH)/build/android/gyp/util/build_utils.py',
920 '>@(proguard_flags_paths)',
921 '>@(obfuscate_input_jars_paths)',
922 '>@(additional_obfuscate_input_paths)',
923 '<(instr_stamp)',
924 ],
925 'outputs': [
926 '<(obfuscate_stamp)',
927
928 # In non-Release builds, these paths will all be empty files.
929 '<(obfuscated_jar_path)',
930 '<(obfuscated_jar_path).info',
931 '<(obfuscated_jar_path).dump',
932 '<(obfuscated_jar_path).seeds',
933 '<(obfuscated_jar_path).mapping',
934 '<(obfuscated_jar_path).usage',
935 ],
936 'action': [
937 'python', '<(DEPTH)/build/android/gyp/apk_obfuscate.py',
938
939 '--configuration-name', '<(CONFIGURATION_NAME)',
940
941 '--android-sdk', '<(android_sdk)',
942 '--android-sdk-tools', '<(android_sdk_tools)',
943 '--android-sdk-jar', '<(android_sdk_jar)',
944
945 '--input-jars-paths=>(proguard_input_jar_paths)',
946 '--proguard-configs=>(proguard_flags_paths)',
947
948 '--test-jar-path', '<(test_jar_path)',
949 '--obfuscated-jar-path', '<(obfuscated_jar_path)',
950
951 '--proguard-jar-path', '<(android_sdk_root)/tools/proguard/lib/proguard. jar',
952
953 '--stamp', '<(obfuscate_stamp)',
954
955 '>@(additional_obfuscate_options)',
956 ],
957 },
958 {
959 'action_name': 'dex_<(_target_name)',
960 'variables': {
961 'dex_input_paths': [
962 '>@(library_dexed_jars_paths)',
963 '<(jar_path)',
964 ],
965 'output_path': '<(dex_path)',
966 'proguard_enabled_input_path': '<(obfuscated_jar_path)',
967 },
968 'target_conditions': [
969 ['emma_instrument != 0', {
970 'variables': {
971 'dex_no_locals': 1,
972 'dex_input_paths': [
973 '<(emma_device_jar)'
974 ],
975 },
976 }],
977 ['is_test_apk == 1 and tested_apk_dex_path != "/"', {
978 'variables': {
979 'dex_additional_options': [
980 '--excluded-paths', '@FileArg(>(tested_apk_dex_path).inputs)'
981 ],
982 },
983 'inputs': [
984 '>(tested_apk_dex_path).inputs',
985 ],
986 }],
987 ['proguard_enabled == "true"', {
988 'inputs': [ '<(obfuscate_stamp)' ]
989 }, {
990 'inputs': [ '<(instr_stamp)' ]
991 }],
992 ],
993 'includes': [ 'android/dex_action.gypi' ],
994 },
995 {
996 'variables': {
997 'extra_inputs': ['<(codegen_stamp)'],
998 'resource_zips': [
999 '<(resource_zip_path)',
1000 ],
1001 'conditions': [
1002 ['is_test_apk == 0', {
1003 'resource_zips': [
1004 '>@(dependencies_res_zip_paths)',
1005 ],
1006 }],
1007 ],
1008 },
1009 'includes': [ 'android/package_resources_action.gypi' ],
1010 },
1011 {
1012 'variables': {
1013 'apk_path': '<(unsigned_apk_path)',
1014 'conditions': [
1015 ['native_lib_target != ""', {
1016 'extra_inputs': ['<(native_lib_placeholder_stamp)'],
1017 }],
1018 ['create_abi_split == 0', {
1019 'native_libs_dir': '<(apk_package_native_libs_dir)',
1020 }, {
1021 'native_libs_dir': '<(DEPTH)/build/android/ant/empty/res',
1022 }],
1023 ],
1024 },
1025 'includes': ['android/apkbuilder_action.gypi'],
1026 },
1027 ],
1028 }
OLDNEW
« no previous file with comments | « build/java_aidl.gypi ('k') | build/java_prebuilt.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698