// This is auto-generated. DO NOT EDIT.

package {
    // A default list here prevents the license LSC from adding its own list which would
    // be unnecessary as every module in the sdk already has its own licenses property.
    default_applicable_licenses: ["Android-Apache-2.0"],
}

soong_config_module_type_import {
    from: "packages/modules/common/Android.bp",
    module_types: [
        "module_java_sdk_library_import",
        "module_prebuilt_bootclasspath_fragment",
    ],
}

prebuilt_bootclasspath_fragment {
    name: "sdkextensions-sdk_com.android.sdkext-bootclasspath-fragment@current",
    sdk_member_name: "com.android.sdkext-bootclasspath-fragment",
    visibility: ["//packages/modules/SdkExtensions:__subpackages__"],
    apex_available: ["com.android.sdkext"],
    licenses: ["sdkextensions-sdk_Android-Apache-2.0@current"],
    contents: ["sdkextensions-sdk_framework-sdkextensions@current"],
    hidden_api: {
        stub_flags: "hiddenapi/stub-flags.csv",
        annotation_flags: "hiddenapi/annotation-flags.csv",
        metadata: "hiddenapi/metadata.csv",
        index: "hiddenapi/index.csv",
        all_flags: "hiddenapi/all-flags.csv",
    },
}

module_prebuilt_bootclasspath_fragment {
    name: "com.android.sdkext-bootclasspath-fragment",
    prefer: false,
    soong_config_variables: {
        module_build_from_source: {
            prefer: false,
        },
    },
    visibility: ["//packages/modules/SdkExtensions:__subpackages__"],
    apex_available: ["com.android.sdkext"],
    licenses: ["sdkextensions-sdk_Android-Apache-2.0"],
    contents: ["framework-sdkextensions"],
    hidden_api: {
        stub_flags: "hiddenapi/stub-flags.csv",
        annotation_flags: "hiddenapi/annotation-flags.csv",
        metadata: "hiddenapi/metadata.csv",
        index: "hiddenapi/index.csv",
        all_flags: "hiddenapi/all-flags.csv",
    },
}

java_sdk_library_import {
    name: "sdkextensions-sdk_framework-sdkextensions@current",
    sdk_member_name: "framework-sdkextensions",
    visibility: ["//visibility:public"],
    apex_available: [
        "com.android.sdkext",
        "test_com.android.sdkext",
    ],
    licenses: ["sdkextensions-sdk_Android-Apache-2.0@current"],
    shared_library: false,
    permitted_packages: ["android.os.ext"],
    public: {
        jars: ["sdk_library/public/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/public/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/public/framework-sdkextensions.txt",
        removed_api: "sdk_library/public/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/public/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
    system: {
        jars: ["sdk_library/system/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/system/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/system/framework-sdkextensions.txt",
        removed_api: "sdk_library/system/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/system/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
    module_lib: {
        jars: ["sdk_library/module-lib/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/module-lib/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/module-lib/framework-sdkextensions.txt",
        removed_api: "sdk_library/module-lib/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/module-lib/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
}

module_java_sdk_library_import {
    name: "framework-sdkextensions",
    prefer: false,
    soong_config_variables: {
        module_build_from_source: {
            prefer: false,
        },
    },
    visibility: ["//visibility:public"],
    apex_available: [
        "com.android.sdkext",
        "test_com.android.sdkext",
    ],
    licenses: ["sdkextensions-sdk_Android-Apache-2.0"],
    shared_library: false,
    permitted_packages: ["android.os.ext"],
    public: {
        jars: ["sdk_library/public/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/public/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/public/framework-sdkextensions.txt",
        removed_api: "sdk_library/public/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/public/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
    system: {
        jars: ["sdk_library/system/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/system/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/system/framework-sdkextensions.txt",
        removed_api: "sdk_library/system/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/system/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
    module_lib: {
        jars: ["sdk_library/module-lib/framework-sdkextensions-stubs.jar"],
        stub_srcs: ["sdk_library/module-lib/framework-sdkextensions.srcjar"],
        current_api: "sdk_library/module-lib/framework-sdkextensions.txt",
        removed_api: "sdk_library/module-lib/framework-sdkextensions-removed.txt",
        annotations: "sdk_library/module-lib/framework-sdkextensions_annotations.zip",
        sdk_version: "module_current",
    },
}

license {
    name: "sdkextensions-sdk_Android-Apache-2.0@current",
    sdk_member_name: "Android-Apache-2.0",
    visibility: ["//visibility:private"],
    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
    license_text: ["licenses/build/soong/licenses/LICENSE"],
}

license {
    name: "sdkextensions-sdk_Android-Apache-2.0",
    visibility: ["//visibility:private"],
    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
    license_text: ["licenses/build/soong/licenses/LICENSE"],
}

sdk_snapshot {
    name: "sdkextensions-sdk@current",
    visibility: ["//packages/modules/SdkExtensions:__subpackages__"],
    bootclasspath_fragments: ["sdkextensions-sdk_com.android.sdkext-bootclasspath-fragment@current"],
    java_sdk_libs: ["sdkextensions-sdk_framework-sdkextensions@current"],
}
