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",
    ],
    static_libs: [
        "guava",
        "javapoet",
    ],
}

java_binary_host {
    name: "systemfeatures-gen-tool",
    main_class: "com.android.systemfeatures.SystemFeaturesGenerator",
    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:-1 --feature=AUTO: > $(location RwFeatures.java) && " +
        "$(location systemfeatures-gen-tool) com.android.systemfeatures.RoFeatures --readonly=true --feature=WATCH:1 --feature=WIFI:0 --feature=VULKAN:-1 --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",
        "truth",
    ],
}

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