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