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, }, }