// THIS FILE IS AUTOGENERATED BY development/vndk/snapshot/gen_buildfiles.py
// DO NOT EDIT

package {
    default_applicable_licenses: ["prebuilts_vndk_v28_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "prebuilts_vndk_v28_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-GPL",
        "SPDX-license-identifier-GPL-2.0",
        "SPDX-license-identifier-LGPL",
        "SPDX-license-identifier-LGPL-2.1",
        "SPDX-license-identifier-LGPL-3.0",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-NCSA",
        "SPDX-license-identifier-OpenSSL",
        "SPDX-license-identifier-Zlib",
        "legacy_permissive",
    ],
    // large-scale-change unable to identify any license_text files
}

prebuilt_etc {
    name: "llndk.libraries.28.txt",
    target: {
        android_arm: {
            src: "arm/configs/llndk.libraries.28.txt",
        },
        android_arm64: {
            src: "arm64/configs/llndk.libraries.28.txt",
        },
        android_x86: {
            src: "x86/configs/llndk.libraries.28.txt",
        },
        android_x86_64: {
            src: "x86_64/configs/llndk.libraries.28.txt",
        },
    },
}

prebuilt_etc {
    name: "vndksp.libraries.28.txt",
    target: {
        android_arm: {
            src: "arm/configs/vndksp.libraries.28.txt",
        },
        android_arm64: {
            src: "arm64/configs/vndksp.libraries.28.txt",
        },
        android_x86: {
            src: "x86/configs/vndksp.libraries.28.txt",
        },
        android_x86_64: {
            src: "x86_64/configs/vndksp.libraries.28.txt",
        },
    },
}

prebuilt_etc {
    name: "vndkcore.libraries.28.txt",
    target: {
        android_arm: {
            src: "arm/configs/vndkcore.libraries.28.txt",
        },
        android_arm64: {
            src: "arm64/configs/vndkcore.libraries.28.txt",
        },
        android_x86: {
            src: "x86/configs/vndkcore.libraries.28.txt",
        },
        android_x86_64: {
            src: "x86_64/configs/vndkcore.libraries.28.txt",
        },
    },
}

prebuilt_etc {
    name: "vndkprivate.libraries.28.txt",
    target: {
        android_arm: {
            src: "arm/configs/vndkprivate.libraries.28.txt",
        },
        android_arm64: {
            src: "arm64/configs/vndkprivate.libraries.28.txt",
        },
        android_x86: {
            src: "x86/configs/vndkprivate.libraries.28.txt",
        },
        android_x86_64: {
            src: "x86_64/configs/vndkprivate.libraries.28.txt",
        },
    },
}

prebuilt_etc {
    name: "vndkproduct.libraries.28.txt",
    target: {
        android_arm: {
            src: "arm/configs/vndkproduct.libraries.txt",
        },
        android_arm64: {
            src: "arm64/configs/vndkproduct.libraries.txt",
        },
        android_x86: {
            src: "x86/configs/vndkproduct.libraries.txt",
        },
        android_x86_64: {
            src: "x86_64/configs/vndkproduct.libraries.txt",
        },
    },
}

// Defining prebuilt libraries for the compatibility of old vendor modules
cc_prebuilt_library_shared {
    name: "libprotobuf-cpp-lite-vendorcompat",
    stem: "libprotobuf-cpp-lite",
    vendor: true,
    // These are already stripped, and restripping them just issues diagnostics.
    strip: {
        none: true,
    },
    shared_libs: [
        "libc++",
        "libc",
        "libdl",
        "liblog",
        "libm",
        "libz",
    ],
    target: {
        android_arm64: {
            srcs: ["arm64/arch-arm64-armv8-a/shared/vndk-core/libprotobuf-cpp-lite.so"],
        },
        android_arm: {
            srcs: ["arm/arch-arm-armv7-a-neon/shared/vndk-core/libprotobuf-cpp-lite.so"],
        },
        android_x86_64: {
            srcs: ["x86_64/arch-x86_64-x86_64/shared/vndk-core/libprotobuf-cpp-lite.so"],
        },
        android_x86: {
            srcs: ["x86/arch-x86-x86/shared/vndk-core/libprotobuf-cpp-lite.so"],
        },
    },
}

cc_prebuilt_library_shared {
    name: "libprotobuf-cpp-full-vendorcompat",
    stem: "libprotobuf-cpp-full",
    vendor: true,
    // These are already stripped, and restripping them just issues diagnostics.
    strip: {
        none: true,
    },
    shared_libs: [
        "libc++",
        "libc",
        "libdl",
        "liblog",
        "libm",
        "libz",
    ],
    target: {
        android_arm64: {
            srcs: ["arm64/arch-arm64-armv8-a/shared/vndk-core/libprotobuf-cpp-full.so"],
        },
        android_arm: {
            srcs: ["arm/arch-arm-armv7-a-neon/shared/vndk-core/libprotobuf-cpp-full.so"],
        },
        android_x86_64: {
            srcs: ["x86_64/arch-x86_64-x86_64/shared/vndk-core/libprotobuf-cpp-full.so"],
        },
        android_x86: {
            srcs: ["x86/arch-x86-x86/shared/vndk-core/libprotobuf-cpp-full.so"],
        },
    },
}
