Commit 6e687af2 by Geoff Lang Committed by Commit Bot

Support standalone Android builds in ANGLE.

By disabling apk generation, we can build all of our targets in a standalone ANGLE checkout on Linux. This allows tools like gn desc to give us useful information about Android builds. BUG=angleproject:4026,angleproject:2344 Change-Id: Ic46348fd06c5174ce5e5a4d89ceb391246c6ac6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866080Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 515f9beb
...@@ -1280,7 +1280,7 @@ if (!is_component_build && is_android && symbol_level != 0) { ...@@ -1280,7 +1280,7 @@ if (!is_component_build && is_android && symbol_level != 0) {
} }
} }
if (!is_component_build && is_android && if (build_with_chromium && !is_component_build && is_android &&
current_toolchain == default_toolchain) { current_toolchain == default_toolchain) {
# Package ANGLE libraries # Package ANGLE libraries
angle_apk("angle_chromium_apk") { angle_apk("angle_chromium_apk") {
......
...@@ -61,6 +61,11 @@ vars = { ...@@ -61,6 +61,11 @@ vars = {
# Current revision of Khronos Vulkan-ValidationLayers. # Current revision of Khronos Vulkan-ValidationLayers.
'vulkan_validation_revision': 'f8ea20adee82d262134fc3fa1a417a6e86fdff23', 'vulkan_validation_revision': 'f8ea20adee82d262134fc3fa1a417a6e86fdff23',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling catapult
# and whatever else without interference from each other.
'catapult_revision': '1b3fb455bf1849f1e6187e1eaeaef32b9f30d3c5',
} }
deps = { deps = {
...@@ -223,6 +228,16 @@ deps = { ...@@ -223,6 +228,16 @@ deps = {
'url': '{chromium_git}/chromium/src/tools/memory@89552acb6e60f528fe3c98eac7b445d4c34183ee', 'url': '{chromium_git}/chromium/src/tools/memory@89552acb6e60f528fe3c98eac7b445d4c34183ee',
'condition': 'not build_with_chromium', 'condition': 'not build_with_chromium',
}, },
'third_party/catapult': {
'url': '{chromium_git}/catapult.git@{catapult_revision}',
'condition': 'not build_with_chromium',
},
'third_party/android_ndk': {
'url': '{chromium_git}/android_ndk.git@89e8db0cdf323af8bc24de875d7d2a43a66bf10e',
'condition': 'not build_with_chromium',
},
} }
hooks = [ hooks = [
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/android/rules.gni") import("//build/config/android/rules.gni")
import("//third_party/angle/gni/angle.gni") import("../gni/angle.gni")
vulkan_validation_layers = [ "VkLayer_khronos_validation" ] vulkan_validation_layers = [ "VkLayer_khronos_validation" ]
...@@ -14,9 +14,11 @@ angle_libraries = [ ...@@ -14,9 +14,11 @@ angle_libraries = [
"libfeature_support", "libfeature_support",
] ]
template("angle_apk") { if (enable_java_templates) {
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"
jinja_template(manifest_target_name) { jinja_template(manifest_target_name) {
input = "//third_party/angle/android/AndroidManifest.xml.jinja2" input = "//third_party/angle/android/AndroidManifest.xml.jinja2"
...@@ -58,9 +60,10 @@ template("angle_apk") { ...@@ -58,9 +60,10 @@ template("angle_apk") {
} }
if (angle_enable_vulkan_validation_layers) { if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) {
secondary_abi_shared_libraries += secondary_abi_shared_libraries += [
[ "$angle_root/third_party/vulkan-validation-layers:${_layer}" + "$angle_root/third_party/vulkan-validation-layers:${_layer}" +
"($android_secondary_abi_toolchain)" ] "($android_secondary_abi_toolchain)",
]
} }
} }
} else { } else {
...@@ -100,7 +103,9 @@ template("angle_apk") { ...@@ -100,7 +103,9 @@ template("angle_apk") {
} }
if (angle_enable_vulkan_validation_layers) { if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) { foreach(_layer, vulkan_validation_layers) {
loadable_modules += [ "$root_out_dir/lib.compressed/lib${_layer}.so" ] loadable_modules +=
[ "$root_out_dir/lib.compressed/lib${_layer}.so" ]
}
} }
} }
} }
......
...@@ -24,3 +24,6 @@ if (host_os == "mac" && use_system_xcode == "") { ...@@ -24,3 +24,6 @@ if (host_os == "mac" && use_system_xcode == "") {
use_system_xcode = _result != 1 use_system_xcode = _result != 1
} }
# ANGLE standalone builds don't currently support java templates or APK generation
enable_java_templates = build_with_chromium
...@@ -178,6 +178,14 @@ set_defaults("angle_test") { ...@@ -178,6 +178,14 @@ set_defaults("angle_test") {
if (build_with_chromium) { if (build_with_chromium) {
suppressed_configs -= [ "//build/config/compiler:default_include_dirs" ] suppressed_configs -= [ "//build/config/compiler:default_include_dirs" ]
} }
if (is_android) {
if (build_with_chromium) {
use_native_activity = true
} else {
use_raw_android_executable = true
}
}
} }
template("angle_executable") { template("angle_executable") {
...@@ -296,8 +304,10 @@ template("angle_test") { ...@@ -296,8 +304,10 @@ template("angle_test") {
if (is_android) { if (is_android) {
configs += [ angle_root + ":build_id_config" ] configs += [ angle_root + ":build_id_config" ]
if (build_with_chromium) {
configs -= [ "//build/config/android:hide_all_but_jni" ] configs -= [ "//build/config/android:hide_all_but_jni" ]
} }
}
deps += _googletest_deps + [ deps += _googletest_deps + [
"$angle_root:angle_common", "$angle_root:angle_common",
......
...@@ -157,9 +157,6 @@ if (is_win || is_linux || is_mac || is_android || is_fuchsia) { ...@@ -157,9 +157,6 @@ if (is_win || is_linux || is_mac || is_android || is_fuchsia) {
"${angle_root}:libGLESv2", "${angle_root}:libGLESv2",
] ]
if (is_android) {
use_native_activity = true
}
if (angle_enable_vulkan) { if (angle_enable_vulkan) {
deps += [ "${angle_root}/src/libANGLE/renderer/vulkan:angle_vulkan" ] deps += [ "${angle_root}/src/libANGLE/renderer/vulkan:angle_vulkan" ]
} }
...@@ -195,10 +192,6 @@ if (is_win || is_linux || is_mac || is_android) { ...@@ -195,10 +192,6 @@ if (is_win || is_linux || is_mac || is_android) {
"${angle_root}:preprocessor", "${angle_root}:preprocessor",
"${angle_root}:translator", "${angle_root}:translator",
] ]
if (is_android) {
use_native_activity = true
}
} }
} }
...@@ -233,10 +226,6 @@ if (is_win || is_linux || is_android || is_mac) { ...@@ -233,10 +226,6 @@ if (is_win || is_linux || is_android || is_mac) {
"${angle_root}:libANGLE_config", "${angle_root}:libANGLE_config",
"${angle_root}:library_name_config", "${angle_root}:library_name_config",
] ]
if (is_android) {
use_native_activity = true
}
} }
} }
...@@ -270,10 +259,6 @@ if (is_win || is_linux || is_android || is_mac || is_fuchsia) { ...@@ -270,10 +259,6 @@ if (is_win || is_linux || is_android || is_mac || is_fuchsia) {
"${angle_root}:library_name_config", "${angle_root}:library_name_config",
] ]
if (is_android) {
use_native_activity = true
}
if (is_win || is_linux) { if (is_win || is_linux) {
data_deps += [ "${angle_root}/third_party/glmark2:glmark2_angle" ] data_deps += [ "${angle_root}/third_party/glmark2:glmark2_angle" ]
} }
...@@ -510,10 +495,6 @@ if (build_angle_gles1_conform_tests) { ...@@ -510,10 +495,6 @@ if (build_angle_gles1_conform_tests) {
"${angle_root}:library_name_config", "${angle_root}:library_name_config",
"${angle_root}:angle_backend_config", "${angle_root}:angle_backend_config",
] ]
if (is_android) {
use_native_activity = true
}
} }
} }
...@@ -873,10 +854,6 @@ if (build_angle_deqp_tests && !is_fuchsia) { ...@@ -873,10 +854,6 @@ if (build_angle_deqp_tests && !is_fuchsia) {
"deqp_support/deqp_${_api}_test_expectations.txt", "deqp_support/deqp_${_api}_test_expectations.txt",
"${invoker.mustpass_dir}/${invoker.mustpass_name}", "${invoker.mustpass_dir}/${invoker.mustpass_name}",
] ]
if (is_android) {
use_native_activity = true
}
} }
} }
......
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