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

package {
    default_applicable_licenses: ["prebuilts_vndk_v29_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_v29_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-ISC",
        "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",
        "legacy_permissive",
    ],
    // large-scale-change unable to identify any license_text files
}

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

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

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

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

prebuilt_etc {
    name: "vndkproduct.libraries.29.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",
        },
    },
}
