// This file is generated by cargo2android.py --run --device --dependencies.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: [
        "external_rust_crates_regex-automata_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:'.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_regex-automata_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-Unlicense",
    ],
    license_text: [
        "COPYING",
        "LICENSE-MIT",
        "UNLICENSE",
    ],
}

rust_library {
    name: "libregex_automata",
    // has rustc warnings
    host_supported: true,
    crate_name: "regex_automata",
    srcs: ["src/lib.rs"],
    edition: "2015",
    features: [
        "default",
        "regex-syntax",
        "std",
    ],
    flags: [
        "-C debug-assertions=on",
        "-C opt-level=3",
    ],
    rustlibs: [
        "libbyteorder",
        "libregex_syntax",
    ],
}

// dependent_library ["feature_list"]
//   byteorder-1.4.2
//   regex-syntax-0.6.22 "default,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
