blob: e73db9947f7fd32a2adbf91ead48729de7256390 [file] [log] [blame]
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
default_visibility: [":__subpackages__"],
default_applicable_licenses: ["Android-Apache-2.0"],
}
apex {
name: "com.android.sdkext",
defaults: ["com.android.sdkext-defaults"],
bootclasspath_fragments: ["com.android.sdkext-bootclasspath-fragment"],
binaries: [
"derive_classpath",
"derive_sdk",
],
prebuilts: [
"current_sdkinfo",
"extensions_db",
],
manifest: "manifest.json",
}
apex_defaults {
name: "com.android.sdkext-defaults",
defaults: ["r-launched-apex-module"],
prebuilts: [
"derive_classpath.rc",
"derive_sdk.rc",
],
key: "com.android.sdkext.key",
certificate: ":com.android.sdkext.certificate",
}
apex_key {
name: "com.android.sdkext.key",
public_key: "com.android.sdkext.avbpubkey",
private_key: "com.android.sdkext.pem",
}
android_app_certificate {
name: "com.android.sdkext.certificate",
certificate: "com.android.sdkext",
}
sdk {
name: "sdkextensions-sdk",
apexes: [
// Adds exportable dependencies of the APEX to the sdk,
// e.g. *classpath_fragments.
"com.android.sdkext",
],
}
// Encapsulate the contributions made by the com.android.sdkext to the bootclasspath.
bootclasspath_fragment {
name: "com.android.sdkext-bootclasspath-fragment",
contents: ["framework-sdkextensions"],
apex_available: ["com.android.sdkext"],
// The bootclasspath_fragments that provide APIs on which this depends.
fragments: [
{
apex: "com.android.art",
module: "art-bootclasspath-fragment",
},
],
hidden_api: {
// This module does not contain any split packages.
split_packages: [],
// The following packages and all their subpackages currently only
// contain classes from this bootclasspath_fragment. Listing a package
// here won't prevent other bootclasspath modules from adding classes in
// any of those packages but it will prevent them from adding those
// classes into an API surface, e.g. public, system, etc.. Doing so will
// result in a build failure due to inconsistent flags.
package_prefixes: [
"android.os.ext",
],
},
}
filegroup {
name: "sdk-extensions-info",
srcs: ["sdk-extensions-info.xml"],
visibility: [
"//frameworks/base",
"//frameworks/base/api",
],
}
java_test_host {
name: "sdkextensions_conformance_framework_tests",
static_libs: ["ClasspathFetcher"],
libs: [
"tradefed",
"truth",
],
test_config: "sdkext-conformance-framework.xml",
test_suites: [
"mts",
"device-tests",
],
}
// TODO: b/316383039 - Remove this module and the script when udc-mainline-prod
// branch is removed.
// The options passed to Metalava when generating API signature files and stubs
// for SDK extension releases.
genrule {
name: "sdkext-released-flagged-apis",
visibility: [
"//visibility:public",
],
tool_files: ["keep-flagged-apis.sh"],
srcs: ["released-flagged-apis.txt"],
out: ["metalava-keep-flagged-apis.txt"],
cmd: "$(location keep-flagged-apis.sh) \"$(in)\" > \"$(out)\"",
}