blob: c561c4050d51d753553619c7e2e14f1d6d197df5 [file] [log] [blame]
# 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("//third_party/angle/gni/angle.gni")
vulkan_validation_layers = [ "VkLayer_khronos_validation" ]
angle_libraries = [
"libEGL",
"libGLESv1_CM",
"libGLESv2",
"libfeature_support",
]
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}" ]
}
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 (build_apk_secondary_abi && android_64bit_target_cpu) {
deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ]
}
}
uncompress_shared_libraries = true
if (build_apk_secondary_abi && 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" ]
}
}
}
}
}