File: angle_apk.gni

package info (click to toggle)
wpewebkit 2.50.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 438,332 kB
  • sloc: cpp: 3,777,828; javascript: 197,888; ansic: 156,951; python: 49,119; asm: 21,987; ruby: 18,540; perl: 16,722; xml: 4,623; yacc: 2,360; sh: 2,096; java: 2,019; lex: 1,327; pascal: 366; makefile: 90
file content (118 lines) | stat: -rw-r--r-- 4,243 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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("../gni/angle.gni")

vulkan_validation_layers = [ "VkLayer_khronos_validation" ]

angle_libraries = [
  "libEGL",
  "libGLESv1_CM",
  "libGLESv2",
  "libfeature_support",
]

if (enable_java_templates) {
  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 = "${angle_root}/android/AndroidManifest.xml.jinja2"
      output = manifest_path
      variables = [
        "manifest_package=${invoker.package_name}",
        "extract_native_libs=${angle_extract_native_libs}",
      ]
    }

    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"
      version_code = invoker.version_code
      version_name = invoker.version_name
      min_sdk_version = 26
      target_sdk_version = 28
      deps = [ ":${invoker.package_name}_assets" ]
      if (symbol_level != 0) {
        deps += [ ":compressed_symbols" ]
        if (android_64bit_target_cpu &&
            defined(android_secondary_abi_toolchain)) {
          deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ]
        }
      }

      if (android_64bit_target_cpu &&
          defined(android_secondary_abi_toolchain)) {
        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_vulkan_validation_layers_dir:${_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}${shlib_extension}" ]
          }
          if (angle_enable_vulkan_validation_layers) {
            foreach(_layer, vulkan_validation_layers) {
              secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}${shlib_extension}" ]
            }
          }
        }
      }

      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_vulkan_validation_layers_dir:${_layer}" ]
          }
        }
        if (angle_enable_vulkan_api_dump_layer) {
          shared_libraries +=
              [ "$angle_lunarg_vulkantools_dir:VkLayer_lunarg_api_dump" ]
        }
      } else {
        loadable_modules = []
        foreach(_library, angle_libraries) {
          loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ]
        }
        if (angle_enable_vulkan_validation_layers) {
          foreach(_layer, vulkan_validation_layers) {
            loadable_modules += [
              "$root_out_dir/lib.compressed/lib${_layer}${shlib_extension}",
            ]
          }
        }
        if (angle_enable_vulkan_api_dump_layer) {
          loadable_modules += [ "$root_out_dir/lib.compressed/libVkLayer_lunarg_api_dump${shlib_extension}" ]
        }
      }
    }
  }
}