Commit 8e636443 by Cody Northrop Committed by Commit Bot

Generate multiple Android APKs

This change moves the generation of Android APKs into a template function so it can be called multiple times with different parameters. The two packages generated only differ by package name and APK name, but this lays the framework for easy future changes. Bug: angleproject:3004 Change-Id: I6c27d379bfa5f5c2912bf04cb748983787e385ac Reviewed-on: https://chromium-review.googlesource.com/c/1361381 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
parent 654b3c56
...@@ -7,13 +7,13 @@ ...@@ -7,13 +7,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.google.android.angle"> package="{{manifest_package|default('com.android.angle')}}">
<uses-sdk android:minSdkVersion="26" <uses-sdk android:minSdkVersion="26"
android:targetSdkVersion="28"> android:targetSdkVersion="28">
</uses-sdk> </uses-sdk>
<application android:label="Android System Angle" <application android:label="Android System Angle"
android:icon="@com.google.android.angle:drawable/icon" android:icon="@{{manifest_package|default('com.android.angle')}}:drawable/icon"
android:extractNativeLibs="false" android:extractNativeLibs="false"
android:multiArch="true" android:multiArch="true"
android:hasCode="false"> android:hasCode="false">
......
...@@ -11,6 +11,7 @@ import("gni/angle.gni") ...@@ -11,6 +11,7 @@ import("gni/angle.gni")
if (is_android) { if (is_android) {
# android/rules.gni can only be imported for Android targets # android/rules.gni can only be imported for Android targets
import("//build/config/android/rules.gni") import("//build/config/android/rules.gni")
import("android/angle_apk.gni")
} }
declare_args() { declare_args() {
...@@ -972,41 +973,27 @@ shared_library("libfeature_support${angle_libs_suffix}") { ...@@ -972,41 +973,27 @@ shared_library("libfeature_support${angle_libs_suffix}") {
if (is_android) { if (is_android) {
# Package ANGLE libraries for pre-installed system image # Package ANGLE libraries for pre-installed system image
android_assets("angle_apk_assets") { angle_apk("aosp_apk") {
disable_compression = true package_name = "com.android.angle"
sources = [ apk_name = "AngleAosp"
"src/feature_support_util/a4a_rules.json",
]
} }
android_resources("angle_apk_resources") { angle_apk("google_apk") {
resource_dirs = [ "android/res" ] package_name = "com.google.android.angle"
custom_package = "com.google.android.angle" apk_name = "ANGLEPrebuilt"
} }
android_apk("angle_apk") { group("angle_apks") {
deps = [ deps = [
":angle_apk_assets", ":aosp_apk",
":angle_apk_resources", ":google_apk",
] ]
if (build_apk_secondary_abi && android_64bit_target_cpu) { }
secondary_abi_shared_libraries = [
"//third_party/angle:libEGL${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libGLESv2${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libfeature_support${angle_libs_suffix}($android_secondary_abi_toolchain)",
]
}
android_manifest = "AndroidManifest.xml"
apk_name = "ANGLEPrebuilt" # Include a temporary target until we update builders to use angle_apks
uncompress_shared_libraries = true group("angle_apk") {
shared_libraries = [ deps = [
"//third_party/angle:libEGL${angle_libs_suffix}", ":angle_apks",
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}",
"//third_party/angle:libGLESv2${angle_libs_suffix}",
"//third_party/angle:libfeature_support${angle_libs_suffix}",
] ]
} }
} }
# 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")
template("angle_apk") {
manifest_target_name = "${target_name}__manifest"
manifest_path = "${target_gen_dir}/${target_name}/AndroidManifest.xml"
jinja_template(manifest_target_name) {
input = "//third_party/angle/AndroidManifest.xml.jinja2"
output = manifest_path
variables = [ "manifest_package=${invoker.package_name}" ]
}
android_resources("${invoker.package_name}_resources") {
resource_dirs = [ "android/res" ]
custom_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"
deps = [
":${invoker.package_name}_assets",
":${invoker.package_name}_resources",
]
uncompress_shared_libraries = true
if (build_apk_secondary_abi && android_64bit_target_cpu) {
secondary_abi_shared_libraries = [
"//third_party/angle:libEGL${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libGLESv2${angle_libs_suffix}($android_secondary_abi_toolchain)",
"//third_party/angle:libfeature_support${angle_libs_suffix}" +
"($android_secondary_abi_toolchain)",
]
}
shared_libraries = [
"//third_party/angle:libEGL${angle_libs_suffix}",
"//third_party/angle:libGLESv1_CM${angle_libs_suffix}",
"//third_party/angle:libGLESv2${angle_libs_suffix}",
"//third_party/angle:libfeature_support${angle_libs_suffix}",
]
}
}
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