blob: 87ea5db57db4c563b8248390407b16b88e30a9fc [file] [log] [blame]
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "frameworks_base_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["frameworks_base_license"],
default_team: "trendy_team_system_performance",
}
java_library_host {
name: "systemfeatures-gen-lib",
srcs: [
"src/**/*.java",
"src/**/*.kt",
":framework-metalava-annotations",
],
static_libs: [
"guava",
"javapoet",
],
}
java_binary_host {
name: "systemfeatures-gen-tool",
main_class: "com.android.systemfeatures.SystemFeaturesGenerator",
static_libs: ["systemfeatures-gen-lib"],
}
java_plugin {
name: "systemfeatures-metadata-processor",
processor_class: "com.android.systemfeatures.SystemFeaturesMetadataProcessor",
static_libs: ["systemfeatures-gen-lib"],
}
genrule {
name: "systemfeatures-gen-tests-srcs",
cmd: "$(location systemfeatures-gen-tool) com.android.systemfeatures.RwNoFeatures --readonly=false > $(location RwNoFeatures.java) && " +
"$(location systemfeatures-gen-tool) com.android.systemfeatures.RoNoFeatures --readonly=true --feature-apis=WATCH > $(location RoNoFeatures.java) && " +
"$(location systemfeatures-gen-tool) com.android.systemfeatures.RwFeatures --readonly=false --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: > $(location RwFeatures.java) && " +
"$(location systemfeatures-gen-tool) com.android.systemfeatures.RoFeatures --readonly=true --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:UNAVAILABLE --feature=AUTO: --feature-apis=WATCH,PC > $(location RoFeatures.java)",
out: [
"RwNoFeatures.java",
"RoNoFeatures.java",
"RwFeatures.java",
"RoFeatures.java",
],
tools: ["systemfeatures-gen-tool"],
}
// Functional runtime behavior testing.
java_test_host {
name: "systemfeatures-gen-tests",
test_suites: ["general-tests"],
srcs: [
"tests/src/**/*.java",
":systemfeatures-gen-tests-srcs",
],
test_options: {
unit_test: true,
},
static_libs: [
"aconfig-annotations-lib",
"framework-annotations-lib",
"junit",
"objenesis",
"mockito",
"systemfeatures-gen-lib",
"truth",
],
plugins: ["systemfeatures-metadata-processor"],
}
// Rename the goldens as they may be copied into the source tree, and we don't
// need or want the usual `.java` linting (e.g., copyright checks).
genrule {
name: "systemfeatures-gen-tests-golden-srcs",
cmd: "for f in $(in); do cp $$f $(genDir)/tests/gen/$$(basename $$f).gen; done",
srcs: [":systemfeatures-gen-tests-srcs"],
out: [
"tests/gen/RwNoFeatures.java.gen",
"tests/gen/RoNoFeatures.java.gen",
"tests/gen/RwFeatures.java.gen",
"tests/gen/RoFeatures.java.gen",
],
}
// Golden output testing. Golden sources can be updated via:
// $ANDROID_BUILD_TOP/frameworks/base/tools/systemfeatures/tests/golden_test.sh --update
sh_test_host {
name: "systemfeatures-gen-golden-tests",
src: "tests/golden_test.sh",
filename: "systemfeatures-gen-golden-tests.sh",
test_config: "tests/systemfeatures-gen-golden-tests.xml",
data: [
"tests/golden/**/*.java*",
":systemfeatures-gen-tests-golden-srcs",
],
test_options: {
unit_test: true,
},
}
java_library_host {
name: "systemfeatures-errorprone-lib",
srcs: [
":systemfeatures-gen-metadata-srcs",
"errorprone/java/**/*.java",
],
static_libs: [
"//external/error_prone:error_prone_core",
"guava",
"jsr305",
],
libs: [
"//external/auto:auto_service_annotations",
],
javacflags: [
// These exports are needed because this errorprone plugin access some private classes
// of the java compiler.
"--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
"--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
"--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
],
plugins: [
"//external/auto:auto_service_plugin",
],
}
java_plugin {
name: "systemfeatures-errorprone",
static_libs: ["systemfeatures-errorprone-lib"],
}
java_test_host {
name: "systemfeatures-errorprone-tests",
srcs: [
"errorprone/tests/java/**/*.java",
],
java_resource_dirs: ["tests/src"],
java_resources: [
":systemfeatures-errorprone-tests-data",
],
static_libs: [
"compile-testing-prebuilt",
"error_prone_test_helpers",
"framework-annotations-lib",
"hamcrest",
"hamcrest-library",
"junit",
"systemfeatures-errorprone-lib",
"truth",
],
test_options: {
unit_test: true,
},
}
java_system_features_srcs {
name: "systemfeatures-gen-metadata-srcs",
full_class_name: "com.android.systemfeatures.RoSystemFeaturesMetadata",
metadata_only: true,
visibility: ["//visibility:private"],
}
filegroup {
name: "systemfeatures-errorprone-tests-data",
path: "tests/src",
srcs: ["tests/src/android/**/*.java"],
visibility: ["//visibility:private"],
}