aboutsummaryrefslogtreecommitdiff
path: root/rules/apex/BUILD
blob: 61bacae8cd944900e1c33c1e5b3bc884ac33efac (plain)
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "bool_setting", "string_list_setting", "string_setting")
load("@env//:env.bzl", "env")
load("@soong_injection//api_levels:platform_versions.bzl", "platform_versions")
load("@soong_injection//product_config:product_variables.bzl", "product_vars")
load("//build/bazel/flags:common.bzl", "is_env_true")
load("//build/bazel/product_variables:constants.bzl", "constants")
load("//build/bazel/rules/apex:toolchain.bzl", "apex_toolchain")
load("//build/bazel/rules/common:api.bzl", "api")
load(":apex_aab_test.bzl", "apex_aab_test_suite")
load(":apex_key_test.bzl", "apex_key_test_suite")
load(":apex_mk_test.bzl", "apex_mk_test_suite")
load(":apex_test.bzl", "apex_test_suite")

string_setting(
    name = "apex_name",
    build_setting_default = "",
    visibility = ["//visibility:public"],
)

string_setting(
    name = "base_apex_name",
    build_setting_default = "",
    visibility = ["//visibility:public"],
)

string_setting(
    name = "override_apex_manifest_default_version",
    build_setting_default = env.get("OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION", ""),
    visibility = ["//visibility:public"],
)

string_setting(
    name = "apex_global_min_sdk_version_override",
    # TODO(b/269577299): Make this read from //build/bazel/product_config:product_vars instead.
    build_setting_default = product_vars.get("ApexGlobalMinSdkVersionOverride", ""),
    visibility = ["//visibility:public"],
)

bool_setting(
    name = "within_apex",
    build_setting_default = False,
    visibility = ["//visibility:public"],
)

config_setting(
    name = "in_apex",
    flag_values = {
        ":within_apex": "True",
    },
)

config_setting(
    name = "non_apex",
    flag_values = {
        ":apex_name": "",
    },
)

config_setting(
    name = "android-in_apex",
    constraint_values = [
        constants.ArchVariantToConstraints["android"],
    ],
    flag_values = {
        ":within_apex": "True",
    },
)

config_setting(
    name = "android-non_apex",
    constraint_values = [
        constants.ArchVariantToConstraints["android"],
    ],
    flag_values = {
        ":within_apex": "False",
    },
)

config_setting(
    name = "linux_bionic-in_apex",
    constraint_values = [
        constants.ArchVariantToConstraints["linux_bionic"],
    ],
    flag_values = {
        ":within_apex": "True",
    },
)

config_setting(
    name = "linux_bionic-non_apex",
    constraint_values = [
        constants.ArchVariantToConstraints["linux_bionic"],
    ],
    flag_values = {
        ":within_apex": "False",
    },
)

string_list_setting(
    name = "apex_direct_deps",
    build_setting_default = [],
    visibility = ["//visibility:public"],
)

bool_flag(
    name = "apexer_verbose",
    build_setting_default = False,
    visibility = ["//visibility:public"],
)

string_setting(
    name = "min_sdk_version",
    build_setting_default = "",
    visibility = ["//visibility:public"],
)

[
    config_setting(
        name = "min_sdk_version_" + str(level),
        flag_values = {
            ":min_sdk_version": str(level),
        },
    )
    for level in api.api_levels.values()
]

bool_flag(
    name = "unsafe_disable_apex_allowed_deps_check",
    build_setting_default = is_env_true(env.get("UNSAFE_DISABLE_APEX_ALLOWED_DEPS_CHECK")),
    visibility = ["//visibility:public"],
)

bool_flag(
    name = "unbundled_build_target_sdk_with_api_fingerprint",
    build_setting_default = is_env_true(env.get("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT")),
    visibility = ["//visibility:public"],
)

string_setting(
    name = "platform_sdk_codename",
    build_setting_default = platform_versions.platform_sdk_codename,
    visibility = ["//visibility:public"],
)

toolchain_type(name = "apex_toolchain_type")

apex_toolchain(
    name = "apex_toolchain",
    aapt2 = "//frameworks/base/tools/aapt2",
    android_jar = "//prebuilts/sdk/current:public/android.jar",
    apex_compression_tool = "//system/apex/tools:apex_compression_tool",
    apexer = "//system/apex/apexer",
    avbtool = "//external/avb:avbtool",
    conv_apex_manifest = "//system/apex/apexer:conv_apex_manifest",
    dexdeps = "//dalvik/tools/dexdeps",  # tool input for gen_java_usedby_apex
    e2fsdroid = "//external/e2fsprogs/contrib/android:e2fsdroid",
    gen_java_usedby_apex = "//build/soong/scripts:gen_java_usedby_apex.sh",
    gen_ndk_usedby_apex = "//build/soong/scripts:gen_ndk_usedby_apex.sh",
    jsonmodify = "//build/soong/scripts:jsonmodify",
    manifest_fixer = "//build/soong/scripts:manifest_fixer",
    mke2fs = "//external/e2fsprogs/misc:mke2fs",
    notice_generator = "//build/bazel/compliance/cmd:bazel_notice_gen",
    readelf = "//prebuilts/clang/host/linux-x86:llvm-readelf",
    resize2fs = "//external/e2fsprogs/resize:resize2fs",
    sefcontext_compile = "//external/selinux/libselinux:sefcontext_compile",
    soong_zip = "//build/soong/zip/cmd:soong_zip",
)

toolchain(
    name = "apex_toolchain_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/os:android",
    ],
    toolchain = ":apex_toolchain",
    toolchain_type = "//build/bazel/rules/apex:apex_toolchain_type",
)

apex_test_suite(
    name = "apex_tests",
)

apex_aab_test_suite(
    name = "apex_aab_tests",
)

apex_key_test_suite(
    name = "apex_key_tests",
)

apex_mk_test_suite(
    name = "apex_mk_tests",
)

filegroup(
    name = "signapk_deploy_jar",
    srcs = ["//build/make/tools/signapk:signapk_deploy.jar"],
    visibility = ["//visibility:public"],
)