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 deps = [ ":${invoker.package_name}_assets" ] 46 if (symbol_level != 0) { 47 deps += [ ":compressed_symbols" ] 48 if (android_64bit_target_cpu && 49 defined(android_secondary_abi_toolchain)) { 50 deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ] 51 } 52 } 53 54 if (android_64bit_target_cpu && 55 defined(android_secondary_abi_toolchain)) { 56 if (symbol_level == 0) { 57 secondary_abi_shared_libraries = [] 58 foreach(_library, angle_libraries) { 59 secondary_abi_shared_libraries += 60 [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ] 61 } 62 if (angle_enable_vulkan_validation_layers) { 63 foreach(_layer, vulkan_validation_layers) { 64 secondary_abi_shared_libraries += 65 [ "$angle_vulkan_validation_layers_dir:${_layer}" + 66 "($android_secondary_abi_toolchain)" ] 67 } 68 } 69 } else { 70 _secondary_out_dir = get_label_info( 71 ":compressed_symbols($android_secondary_abi_toolchain)", 72 "root_out_dir") 73 secondary_abi_loadable_modules = [] 74 foreach(_library, angle_libraries) { 75 secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 76 } 77 if (angle_enable_vulkan_validation_layers) { 78 foreach(_layer, vulkan_validation_layers) { 79 secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}${shlib_extension}" ] 80 } 81 } 82 } 83 } 84 85 if (symbol_level == 0) { 86 shared_libraries = [] 87 foreach(_library, angle_libraries) { 88 shared_libraries += [ "$angle_root:$_library" ] 89 } 90 if (angle_enable_vulkan_validation_layers) { 91 foreach(_layer, vulkan_validation_layers) { 92 shared_libraries += 93 [ "$angle_vulkan_validation_layers_dir:${_layer}" ] 94 } 95 } 96 if (angle_enable_vulkan_api_dump_layer) { 97 shared_libraries += 98 [ "$angle_lunarg_vulkantools_dir:VkLayer_lunarg_api_dump" ] 99 } 100 } else { 101 loadable_modules = [] 102 foreach(_library, angle_libraries) { 103 loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 104 } 105 if (angle_enable_vulkan_validation_layers) { 106 foreach(_layer, vulkan_validation_layers) { 107 loadable_modules += [ 108 "$root_out_dir/lib.compressed/lib${_layer}${shlib_extension}", 109 ] 110 } 111 } 112 if (angle_enable_vulkan_api_dump_layer) { 113 loadable_modules += [ "$root_out_dir/lib.compressed/libVkLayer_lunarg_api_dump${shlib_extension}" ] 114 } 115 } 116 } 117 } 118} 119