# Copyright 2018 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/android/rules.gni") import("../gni/angle.gni") vulkan_validation_layers = [ "VkLayer_khronos_validation" ] angle_libraries = [ "libEGL", "libGLESv1_CM", "libGLESv2", "libfeature_support", ] if (enable_java_templates) { template("angle_apk") { manifest_target_name = "${target_name}__manifest" manifest_path = "${target_gen_dir}/${target_name}/android/AndroidManifest.xml" jinja_template(manifest_target_name) { input = "//third_party/angle/android/AndroidManifest.xml.jinja2" output = manifest_path variables = [ "manifest_package=${invoker.package_name}", "extract_native_libs=${angle_extract_native_libs}", ] } android_assets("${invoker.package_name}_assets") { disable_compression = true sources = [ "src/feature_support_util/a4a_rules.json" ] } android_apk(target_name) { forward_variables_from(invoker, "*") android_manifest = manifest_path android_manifest_dep = ":$manifest_target_name" min_sdk_version = 26 target_sdk_version = 28 deps = [ ":${invoker.package_name}_assets" ] if (symbol_level != 0) { deps += [ ":compressed_symbols" ] if (android_64bit_target_cpu) { deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ] } } uncompress_shared_libraries = true if (android_64bit_target_cpu) { if (symbol_level == 0) { secondary_abi_shared_libraries = [] foreach(_library, angle_libraries) { secondary_abi_shared_libraries += [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ] } if (angle_enable_vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) { secondary_abi_shared_libraries += [ "$angle_root/third_party/vulkan-validation-layers:${_layer}" + "($android_secondary_abi_toolchain)", ] } } } else { _secondary_out_dir = get_label_info( ":compressed_symbols($android_secondary_abi_toolchain)", "root_out_dir") secondary_abi_loadable_modules = [] foreach(_library, angle_libraries) { secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so" ] } if (angle_enable_vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) { secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}.so" ] } } } } if (symbol_level == 0) { shared_libraries = [] foreach(_library, angle_libraries) { shared_libraries += [ "$angle_root:$_library" ] } if (angle_enable_vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) { shared_libraries += [ "$angle_root/third_party/vulkan-validation-layers:${_layer}" ] } } } else { loadable_modules = [] foreach(_library, angle_libraries) { loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}.so", ] } if (angle_enable_vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) { loadable_modules += [ "$root_out_dir/lib.compressed/lib${_layer}.so" ] } } } } } }