1# Copyright 2018 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 5import("//build/config/android/rules.gni") 6import("../gni/angle.gni") 7 8vulkan_validation_layers = [ "VkLayer_khronos_validation" ] 9 10angle_libraries = [ 11 "libEGL", 12 "libGLESv1_CM", 13 "libGLESv2", 14 "libfeature_support", 15] 16 17if (enable_java_templates) { 18 template("angle_apk") { 19 manifest_target_name = "${target_name}__manifest" 20 manifest_path = 21 "${target_gen_dir}/${target_name}/android/AndroidManifest.xml" 22 23 jinja_template(manifest_target_name) { 24 input = "${angle_root}/android/AndroidManifest.xml.jinja2" 25 output = manifest_path 26 variables = [ 27 "manifest_package=${invoker.package_name}", 28 "extract_native_libs=${angle_extract_native_libs}", 29 ] 30 } 31 32 android_assets("${invoker.package_name}_assets") { 33 disable_compression = true 34 sources = [ "src/feature_support_util/a4a_rules.json" ] 35 } 36 37 android_apk(target_name) { 38 forward_variables_from(invoker, "*") 39 android_manifest = manifest_path 40 android_manifest_dep = ":$manifest_target_name" 41 version_code = invoker.version_code 42 version_name = invoker.version_name 43 min_sdk_version = 26 44 target_sdk_version = 28 45 generate_final_jni = false 46 deps = [ ":${invoker.package_name}_assets" ] 47 if (symbol_level != 0) { 48 deps += [ ":compressed_symbols" ] 49 if (android_64bit_target_cpu) { 50 deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ] 51 } 52 } 53 54 uncompress_shared_libraries = true 55 56 if (android_64bit_target_cpu) { 57 if (symbol_level == 0) { 58 secondary_abi_shared_libraries = [] 59 foreach(_library, angle_libraries) { 60 secondary_abi_shared_libraries += 61 [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ] 62 } 63 if (angle_enable_vulkan_validation_layers) { 64 foreach(_layer, vulkan_validation_layers) { 65 secondary_abi_shared_libraries += 66 [ "$angle_vulkan_validation_layers_dir:${_layer}" + 67 "($android_secondary_abi_toolchain)" ] 68 } 69 } 70 } else { 71 _secondary_out_dir = get_label_info( 72 ":compressed_symbols($android_secondary_abi_toolchain)", 73 "root_out_dir") 74 secondary_abi_loadable_modules = [] 75 foreach(_library, angle_libraries) { 76 secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 77 } 78 if (angle_enable_vulkan_validation_layers) { 79 foreach(_layer, vulkan_validation_layers) { 80 secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}${shlib_extension}" ] 81 } 82 } 83 } 84 } 85 86 if (symbol_level == 0) { 87 shared_libraries = [] 88 foreach(_library, angle_libraries) { 89 shared_libraries += [ "$angle_root:$_library" ] 90 } 91 if (angle_enable_vulkan_validation_layers) { 92 foreach(_layer, vulkan_validation_layers) { 93 shared_libraries += 94 [ "$angle_vulkan_validation_layers_dir:${_layer}" ] 95 } 96 } 97 } else { 98 loadable_modules = [] 99 foreach(_library, angle_libraries) { 100 loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 101 } 102 if (angle_enable_vulkan_validation_layers) { 103 foreach(_layer, vulkan_validation_layers) { 104 loadable_modules += [ 105 "$root_out_dir/lib.compressed/lib${_layer}${shlib_extension}", 106 ] 107 } 108 } 109 } 110 } 111 } 112} 113