xref: /aosp_15_r20/external/angle/android/angle_apk.gni (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/android/rules.gni")
6*8975f5c5SAndroid Build Coastguard Workerimport("../gni/angle.gni")
7*8975f5c5SAndroid Build Coastguard Worker
8*8975f5c5SAndroid Build Coastguard Workervulkan_validation_layers = [ "VkLayer_khronos_validation" ]
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workerangle_libraries = [
11*8975f5c5SAndroid Build Coastguard Worker  "libEGL",
12*8975f5c5SAndroid Build Coastguard Worker  "libGLESv1_CM",
13*8975f5c5SAndroid Build Coastguard Worker  "libGLESv2",
14*8975f5c5SAndroid Build Coastguard Worker  "libfeature_support",
15*8975f5c5SAndroid Build Coastguard Worker]
16*8975f5c5SAndroid Build Coastguard Worker
17*8975f5c5SAndroid Build Coastguard Workerif (enable_java_templates) {
18*8975f5c5SAndroid Build Coastguard Worker  template("angle_apk") {
19*8975f5c5SAndroid Build Coastguard Worker    manifest_target_name = "${target_name}__manifest"
20*8975f5c5SAndroid Build Coastguard Worker    manifest_path =
21*8975f5c5SAndroid Build Coastguard Worker        "${target_gen_dir}/${target_name}/android/AndroidManifest.xml"
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker    jinja_template(manifest_target_name) {
24*8975f5c5SAndroid Build Coastguard Worker      input = "${angle_root}/android/AndroidManifest.xml.jinja2"
25*8975f5c5SAndroid Build Coastguard Worker      output = manifest_path
26*8975f5c5SAndroid Build Coastguard Worker      variables = [
27*8975f5c5SAndroid Build Coastguard Worker        "manifest_package=${invoker.package_name}",
28*8975f5c5SAndroid Build Coastguard Worker        "extract_native_libs=${angle_extract_native_libs}",
29*8975f5c5SAndroid Build Coastguard Worker      ]
30*8975f5c5SAndroid Build Coastguard Worker    }
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard Worker    android_assets("${invoker.package_name}_assets") {
33*8975f5c5SAndroid Build Coastguard Worker      disable_compression = true
34*8975f5c5SAndroid Build Coastguard Worker      sources = [ "src/feature_support_util/a4a_rules.json" ]
35*8975f5c5SAndroid Build Coastguard Worker    }
36*8975f5c5SAndroid Build Coastguard Worker
37*8975f5c5SAndroid Build Coastguard Worker    android_apk(target_name) {
38*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
39*8975f5c5SAndroid Build Coastguard Worker      android_manifest = manifest_path
40*8975f5c5SAndroid Build Coastguard Worker      android_manifest_dep = ":$manifest_target_name"
41*8975f5c5SAndroid Build Coastguard Worker      version_code = invoker.version_code
42*8975f5c5SAndroid Build Coastguard Worker      version_name = invoker.version_name
43*8975f5c5SAndroid Build Coastguard Worker      min_sdk_version = 26
44*8975f5c5SAndroid Build Coastguard Worker      target_sdk_version = 28
45*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":${invoker.package_name}_assets" ]
46*8975f5c5SAndroid Build Coastguard Worker      if (symbol_level != 0) {
47*8975f5c5SAndroid Build Coastguard Worker        deps += [ ":compressed_symbols" ]
48*8975f5c5SAndroid Build Coastguard Worker        if (android_64bit_target_cpu &&
49*8975f5c5SAndroid Build Coastguard Worker            defined(android_secondary_abi_toolchain)) {
50*8975f5c5SAndroid Build Coastguard Worker          deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ]
51*8975f5c5SAndroid Build Coastguard Worker        }
52*8975f5c5SAndroid Build Coastguard Worker      }
53*8975f5c5SAndroid Build Coastguard Worker
54*8975f5c5SAndroid Build Coastguard Worker      if (android_64bit_target_cpu &&
55*8975f5c5SAndroid Build Coastguard Worker          defined(android_secondary_abi_toolchain)) {
56*8975f5c5SAndroid Build Coastguard Worker        if (symbol_level == 0) {
57*8975f5c5SAndroid Build Coastguard Worker          secondary_abi_shared_libraries = []
58*8975f5c5SAndroid Build Coastguard Worker          foreach(_library, angle_libraries) {
59*8975f5c5SAndroid Build Coastguard Worker            secondary_abi_shared_libraries +=
60*8975f5c5SAndroid Build Coastguard Worker                [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ]
61*8975f5c5SAndroid Build Coastguard Worker          }
62*8975f5c5SAndroid Build Coastguard Worker          if (angle_enable_vulkan_validation_layers) {
63*8975f5c5SAndroid Build Coastguard Worker            foreach(_layer, vulkan_validation_layers) {
64*8975f5c5SAndroid Build Coastguard Worker              secondary_abi_shared_libraries +=
65*8975f5c5SAndroid Build Coastguard Worker                  [ "$angle_vulkan_validation_layers_dir:${_layer}" +
66*8975f5c5SAndroid Build Coastguard Worker                    "($android_secondary_abi_toolchain)" ]
67*8975f5c5SAndroid Build Coastguard Worker            }
68*8975f5c5SAndroid Build Coastguard Worker          }
69*8975f5c5SAndroid Build Coastguard Worker        } else {
70*8975f5c5SAndroid Build Coastguard Worker          _secondary_out_dir = get_label_info(
71*8975f5c5SAndroid Build Coastguard Worker                  ":compressed_symbols($android_secondary_abi_toolchain)",
72*8975f5c5SAndroid Build Coastguard Worker                  "root_out_dir")
73*8975f5c5SAndroid Build Coastguard Worker          secondary_abi_loadable_modules = []
74*8975f5c5SAndroid Build Coastguard Worker          foreach(_library, angle_libraries) {
75*8975f5c5SAndroid Build Coastguard Worker            secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ]
76*8975f5c5SAndroid Build Coastguard Worker          }
77*8975f5c5SAndroid Build Coastguard Worker          if (angle_enable_vulkan_validation_layers) {
78*8975f5c5SAndroid Build Coastguard Worker            foreach(_layer, vulkan_validation_layers) {
79*8975f5c5SAndroid Build Coastguard Worker              secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}${shlib_extension}" ]
80*8975f5c5SAndroid Build Coastguard Worker            }
81*8975f5c5SAndroid Build Coastguard Worker          }
82*8975f5c5SAndroid Build Coastguard Worker        }
83*8975f5c5SAndroid Build Coastguard Worker      }
84*8975f5c5SAndroid Build Coastguard Worker
85*8975f5c5SAndroid Build Coastguard Worker      if (symbol_level == 0) {
86*8975f5c5SAndroid Build Coastguard Worker        shared_libraries = []
87*8975f5c5SAndroid Build Coastguard Worker        foreach(_library, angle_libraries) {
88*8975f5c5SAndroid Build Coastguard Worker          shared_libraries += [ "$angle_root:$_library" ]
89*8975f5c5SAndroid Build Coastguard Worker        }
90*8975f5c5SAndroid Build Coastguard Worker        if (angle_enable_vulkan_validation_layers) {
91*8975f5c5SAndroid Build Coastguard Worker          foreach(_layer, vulkan_validation_layers) {
92*8975f5c5SAndroid Build Coastguard Worker            shared_libraries +=
93*8975f5c5SAndroid Build Coastguard Worker                [ "$angle_vulkan_validation_layers_dir:${_layer}" ]
94*8975f5c5SAndroid Build Coastguard Worker          }
95*8975f5c5SAndroid Build Coastguard Worker        }
96*8975f5c5SAndroid Build Coastguard Worker        if (angle_enable_vulkan_api_dump_layer) {
97*8975f5c5SAndroid Build Coastguard Worker          shared_libraries +=
98*8975f5c5SAndroid Build Coastguard Worker              [ "$angle_lunarg_vulkantools_dir:VkLayer_lunarg_api_dump" ]
99*8975f5c5SAndroid Build Coastguard Worker        }
100*8975f5c5SAndroid Build Coastguard Worker      } else {
101*8975f5c5SAndroid Build Coastguard Worker        loadable_modules = []
102*8975f5c5SAndroid Build Coastguard Worker        foreach(_library, angle_libraries) {
103*8975f5c5SAndroid Build Coastguard Worker          loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ]
104*8975f5c5SAndroid Build Coastguard Worker        }
105*8975f5c5SAndroid Build Coastguard Worker        if (angle_enable_vulkan_validation_layers) {
106*8975f5c5SAndroid Build Coastguard Worker          foreach(_layer, vulkan_validation_layers) {
107*8975f5c5SAndroid Build Coastguard Worker            loadable_modules += [
108*8975f5c5SAndroid Build Coastguard Worker              "$root_out_dir/lib.compressed/lib${_layer}${shlib_extension}",
109*8975f5c5SAndroid Build Coastguard Worker            ]
110*8975f5c5SAndroid Build Coastguard Worker          }
111*8975f5c5SAndroid Build Coastguard Worker        }
112*8975f5c5SAndroid Build Coastguard Worker        if (angle_enable_vulkan_api_dump_layer) {
113*8975f5c5SAndroid Build Coastguard Worker          loadable_modules += [ "$root_out_dir/lib.compressed/libVkLayer_lunarg_api_dump${shlib_extension}" ]
114*8975f5c5SAndroid Build Coastguard Worker        }
115*8975f5c5SAndroid Build Coastguard Worker      }
116*8975f5c5SAndroid Build Coastguard Worker    }
117*8975f5c5SAndroid Build Coastguard Worker  }
118*8975f5c5SAndroid Build Coastguard Worker}
119