Commit c05c1416 by Courtney Goeltzenleuchter Committed by Commit Bot

Add validation layers to Android apk

The compressed symbol support requires explicitly listing the libraries, so add validation libraries. Use list of ANGLE libraries to reduce duplication Bug: angleproject:2981 Change-Id: Ia8feb58d2a2ee66299b00bbb1fd3a4d9094c0b68 Reviewed-on: https://chromium-review.googlesource.com/c/1394569 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent b5ba549a
...@@ -1096,22 +1096,31 @@ shared_library("libfeature_support${angle_libs_suffix}") { ...@@ -1096,22 +1096,31 @@ shared_library("libfeature_support${angle_libs_suffix}") {
if (!is_component_build && is_android && symbol_level != 0) { if (!is_component_build && is_android && symbol_level != 0) {
action_foreach("compressed_symbols") { action_foreach("compressed_symbols") {
sources = [ sources = []
"${root_out_dir}/libEGL${angle_libs_suffix}.so", foreach(_library, angle_libraries) {
"${root_out_dir}/libGLESv1_CM${angle_libs_suffix}.so", sources += [ "${root_out_dir}/lib${_library}${angle_libs_suffix}.so" ]
"${root_out_dir}/libGLESv2${angle_libs_suffix}.so", }
"${root_out_dir}/libfeature_support${angle_libs_suffix}.so", if (angle_enable_vulkan_validation_layers) {
] foreach(_layer, vulkan_validation_layers) {
sources += [ "${root_out_dir}/lib${_layer}.so" ]
}
}
script = rebase_path("${root_build_dir}/android/compress_symbols.py", script = rebase_path("${root_build_dir}/android/compress_symbols.py",
root_build_dir) root_build_dir)
deps = [ deps = []
"//third_party/angle:libEGL${angle_libs_suffix}", foreach(_library, angle_libraries) {
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}", deps += [ "${angle_root}:lib${_library}${angle_libs_suffix}" ]
"//third_party/angle:libGLESv2${angle_libs_suffix}", }
"//third_party/angle:libfeature_support${angle_libs_suffix}",
] if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) {
deps += [
"${angle_root}/third_party/vulkan-validation-layers:${_layer}",
]
}
}
outputs = [ outputs = [
"$root_out_dir/lib.compressed/{{source_file_part}}", "$root_out_dir/lib.compressed/{{source_file_part}}",
......
...@@ -5,6 +5,21 @@ ...@@ -5,6 +5,21 @@
import("//build/config/android/rules.gni") import("//build/config/android/rules.gni")
import("//third_party/angle/gni/angle.gni") import("//third_party/angle/gni/angle.gni")
vulkan_validation_layers = [
"VkLayer_core_validation",
"VkLayer_object_tracker",
"VkLayer_parameter_validation",
"VkLayer_threading",
"VkLayer_unique_objects",
]
angle_libraries = [
"EGL",
"GLESv1_CM",
"GLESv2",
"feature_support",
]
template("angle_apk") { template("angle_apk") {
manifest_target_name = "${target_name}__manifest" manifest_target_name = "${target_name}__manifest"
manifest_path = "${target_gen_dir}/${target_name}/android/AndroidManifest.xml" manifest_path = "${target_gen_dir}/${target_name}/android/AndroidManifest.xml"
...@@ -54,40 +69,62 @@ template("angle_apk") { ...@@ -54,40 +69,62 @@ template("angle_apk") {
if (build_apk_secondary_abi && android_64bit_target_cpu) { if (build_apk_secondary_abi && android_64bit_target_cpu) {
if (symbol_level == 0) { if (symbol_level == 0) {
secondary_abi_shared_libraries = [ secondary_abi_shared_libraries = []
"//third_party/angle:libEGL${angle_libs_suffix}($android_secondary_abi_toolchain)", foreach(_library, angle_libraries) {
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}($android_secondary_abi_toolchain)", secondary_abi_shared_libraries +=
"//third_party/angle:libGLESv2${angle_libs_suffix}($android_secondary_abi_toolchain)", [ "${angle_root}:lib${_library}${angle_libs_suffix}" +
"//third_party/angle:libfeature_support${angle_libs_suffix}" + "($android_secondary_abi_toolchain)" ]
"($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 { } else {
_secondary_out_dir = get_label_info( _secondary_out_dir = get_label_info(
":compressed_symbols($android_secondary_abi_toolchain)", ":compressed_symbols($android_secondary_abi_toolchain)",
"root_out_dir") "root_out_dir")
secondary_abi_loadable_modules = [ secondary_abi_loadable_modules = []
"$_secondary_out_dir/lib.compressed/libEGL${angle_libs_suffix}.so", foreach(_library, angle_libraries) {
"$_secondary_out_dir/lib.compressed/libGLESv1_CM${angle_libs_suffix}.so", secondary_abi_loadable_modules +=
"$_secondary_out_dir/lib.compressed/libGLESv2${angle_libs_suffix}.so", [ "${_secondary_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so" ]
"$_secondary_out_dir/lib.compressed/libfeature_support${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) { if (symbol_level == 0) {
shared_libraries = [ shared_libraries = []
"//third_party/angle:libEGL${angle_libs_suffix}", foreach(_library, angle_libraries) {
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}", shared_libraries +=
"//third_party/angle:libGLESv2${angle_libs_suffix}", [ "${angle_root}:lib${_library}${angle_libs_suffix}" ]
"//third_party/angle:libfeature_support${angle_libs_suffix}", }
] if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) {
shared_libraries +=
[ "${angle_root}/third_party/vulkan-validation-layers:${_layer}" ]
}
}
} else { } else {
loadable_modules = [ loadable_modules = []
"$root_out_dir/lib.compressed/libEGL${angle_libs_suffix}.so", foreach(_library, angle_libraries) {
"$root_out_dir/lib.compressed/libGLESv1_CM${angle_libs_suffix}.so", loadable_modules += [
"$root_out_dir/lib.compressed/libGLESv2${angle_libs_suffix}.so", "${root_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so",
"$root_out_dir/lib.compressed/libfeature_support${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" ]
}
}
} }
# Common files required by all builds # Common files required by all builds
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment