// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    default_applicable_licenses: [
        "prebuilts_gcc_linux-x86_host_x86_64-w64-mingw32-4.8_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.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
//
// large-scale-change filtered out the below license kinds as false-positives:
//   SPDX-license-identifier-AGPL
// http://go/android-license-faq
license {
    name: "prebuilts_gcc_linux-x86_host_x86_64-w64-mingw32-4.8_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-0BSD",
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-BSL-1.0",
        "SPDX-license-identifier-GFDL", // by exception only
        "SPDX-license-identifier-GPL",
        "SPDX-license-identifier-GPL-2.0",
        "SPDX-license-identifier-GPL-3.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-ZPL",
        "legacy_by_exception_only", // by exception only
        "legacy_unencumbered",
    ],
    license_text: [
        "NOTICE",
        "licenses/**/*",
    ],
}

license {
    name: "winpthreads_license",
    visibility: ["//build/soong"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
    ],
    license_text: ["licenses/mingw-w64-svn-r5861/mingw-w64-libraries/winpthreads/COPYING"],
}

filegroup {
    name: "mingw-libwinpthread-notice",
    srcs: ["licenses/mingw-w64-svn-r5861/mingw-w64-libraries/winpthreads/COPYING"],
}

cc_prebuilt_library_shared {
    name: "libwinpthread-1",
    host_supported: true,
    device_supported: false,
    stl: "none",
    licenses: ["winpthreads_license"],
    multilib: {
        lib32: {
            srcs: ["x86_64-w64-mingw32/lib32/libwinpthread-1.dll"],
        },
        lib64: {
            srcs: ["x86_64-w64-mingw32/bin/libwinpthread-1.dll"],
        },
    },
    visibility: ["//development/build"],

    enabled: false,
    target: {
        windows: {
            enabled: true,
        },
    },
}

cc_prebuilt_library_static {
    name: "libwinpthread",
    host_supported: true,
    enabled: false,
    target: {
        windows: {
            enabled: true,
        },
        windows_x86: {
            srcs: ["x86_64-w64-mingw32/lib32/libwinpthread.a"],
        },
        windows_x86_64: {
            srcs: ["x86_64-w64-mingw32/lib/libwinpthread.a"],
        },
    },
    stl: "none",
    notice: ":mingw-libwinpthread-notice",
    licenses: ["winpthreads_license"],
}
