1load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "bool_setting", "string_list_setting", "string_setting") 2load("@env//:env.bzl", "env") 3load("@soong_injection//api_levels:platform_versions.bzl", "platform_versions") 4load("@soong_injection//product_config:product_variables.bzl", "product_vars") 5load("//build/bazel/flags:common.bzl", "is_env_true") 6load("//build/bazel/product_variables:constants.bzl", "constants") 7load("//build/bazel/rules:metadata.bzl", "metadata") 8load("//build/bazel/rules/apex:toolchain.bzl", "apex_toolchain") 9load("//build/bazel/rules/common:api.bzl", "api") 10load(":apex_aab_test.bzl", "apex_aab_test_suite") 11load(":apex_key_test.bzl", "apex_key_test_suite") 12load(":apex_mk_test.bzl", "apex_mk_test_suite") 13load(":apex_test.bzl", "apex_test_suite") 14 15# Setup package and default_metadata_file for _test_apex_sbom in apex_test.bzl 16package(default_package_metadata = [":default_metadata_file"]) 17 18metadata(name = "default_metadata_file") 19 20string_setting( 21 name = "apex_name", 22 build_setting_default = "", 23 visibility = ["//visibility:public"], 24) 25 26string_setting( 27 name = "base_apex_name", 28 build_setting_default = "", 29 visibility = ["//visibility:public"], 30) 31 32string_setting( 33 name = "override_apex_manifest_default_version", 34 build_setting_default = env.get("OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION", ""), 35 visibility = ["//visibility:public"], 36) 37 38string_setting( 39 name = "apex_global_min_sdk_version_override", 40 # TODO(b/269577299): Make this read from //build/bazel/product_config:product_vars instead. 41 build_setting_default = product_vars.get("ApexGlobalMinSdkVersionOverride", ""), 42 visibility = ["//visibility:public"], 43) 44 45bool_setting( 46 name = "within_apex", 47 build_setting_default = False, 48 visibility = ["//visibility:public"], 49) 50 51config_setting( 52 name = "in_apex", 53 flag_values = { 54 ":within_apex": "True", 55 }, 56) 57 58config_setting( 59 name = "non_apex", 60 flag_values = { 61 ":apex_name": "", 62 }, 63) 64 65config_setting( 66 name = "android-in_apex", 67 constraint_values = [ 68 constants.ArchVariantToConstraints["android"], 69 ], 70 flag_values = { 71 ":within_apex": "True", 72 }, 73) 74 75config_setting( 76 name = "android-non_apex", 77 constraint_values = [ 78 constants.ArchVariantToConstraints["android"], 79 ], 80 flag_values = { 81 ":within_apex": "False", 82 }, 83) 84 85config_setting( 86 name = "linux_bionic-in_apex", 87 constraint_values = [ 88 constants.ArchVariantToConstraints["linux_bionic"], 89 ], 90 flag_values = { 91 ":within_apex": "True", 92 }, 93) 94 95config_setting( 96 name = "linux_bionic-non_apex", 97 constraint_values = [ 98 constants.ArchVariantToConstraints["linux_bionic"], 99 ], 100 flag_values = { 101 ":within_apex": "False", 102 }, 103) 104 105string_list_setting( 106 name = "apex_direct_deps", 107 build_setting_default = [], 108 visibility = ["//visibility:public"], 109) 110 111bool_flag( 112 name = "apexer_verbose", 113 build_setting_default = False, 114 visibility = ["//visibility:public"], 115) 116 117string_setting( 118 name = "min_sdk_version", 119 build_setting_default = "", 120 visibility = ["//visibility:public"], 121) 122 123[ 124 config_setting( 125 name = "min_sdk_version_" + str(level), 126 flag_values = { 127 ":min_sdk_version": str(level), 128 }, 129 ) 130 for level in api.api_levels.values() 131] 132 133bool_flag( 134 name = "unsafe_disable_apex_allowed_deps_check", 135 build_setting_default = is_env_true(env.get("UNSAFE_DISABLE_APEX_ALLOWED_DEPS_CHECK")), 136 visibility = ["//visibility:public"], 137) 138 139bool_flag( 140 name = "unbundled_build_target_sdk_with_api_fingerprint", 141 build_setting_default = is_env_true(env.get("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT")), 142 visibility = ["//visibility:public"], 143) 144 145string_setting( 146 name = "platform_sdk_codename", 147 build_setting_default = platform_versions.platform_sdk_codename, 148 visibility = ["//visibility:public"], 149) 150 151toolchain_type(name = "apex_toolchain_type") 152 153apex_toolchain( 154 name = "apex_toolchain", 155 aapt2 = "//frameworks/base/tools/aapt2", 156 android_jar = "//prebuilts/sdk/current:public/android.jar", 157 apex_compression_tool = "//system/apex/tools:apex_compression_tool", 158 apexer = "//system/apex/apexer", 159 avbtool = "//external/avb:avbtool", 160 conv_apex_manifest = "//system/apex/apexer:conv_apex_manifest", 161 dexdeps = "//dalvik/tools/dexdeps", # tool input for gen_java_usedby_apex 162 e2fsdroid = "//external/e2fsprogs/contrib/android:e2fsdroid", 163 gen_java_usedby_apex = "//build/soong/scripts:gen_java_usedby_apex.sh", 164 gen_ndk_usedby_apex = "//build/soong/scripts:gen_ndk_usedby_apex.sh", 165 jsonmodify = "//build/soong/scripts:jsonmodify", 166 manifest_fixer = "//build/soong/scripts:manifest_fixer", 167 mke2fs = "//external/e2fsprogs/misc:mke2fs", 168 notice_generator = "//build/bazel/compliance/cmd:bazel_notice_gen", 169 readelf = "//prebuilts/clang/host/linux-x86:llvm-readelf", 170 resize2fs = "//external/e2fsprogs/resize:resize2fs", 171 sefcontext_compile = "//external/selinux/libselinux:sefcontext_compile", 172 soong_zip = "//build/soong/zip/cmd:soong_zip", 173) 174 175toolchain( 176 name = "apex_toolchain_def", 177 exec_compatible_with = [ 178 "//build/bazel/platforms/arch:x86_64", 179 "//build/bazel/platforms/os:linux", 180 ], 181 target_compatible_with = [ 182 "//build/bazel/platforms/os:android", 183 ], 184 toolchain = ":apex_toolchain", 185 toolchain_type = "//build/bazel/rules/apex:apex_toolchain_type", 186) 187 188apex_test_suite( 189 name = "apex_tests", 190) 191 192apex_aab_test_suite( 193 name = "apex_aab_tests", 194) 195 196apex_key_test_suite( 197 name = "apex_key_tests", 198) 199 200apex_mk_test_suite( 201 name = "apex_mk_tests", 202) 203 204filegroup( 205 name = "signapk_deploy_jar", 206 srcs = ["//build/make/tools/signapk:signapk_deploy.jar"], 207 visibility = ["//visibility:public"], 208) 209