// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package {
    default_team: "trendy_team_android_hardware_backed_security",
    default_applicable_licenses: ["libcppbor_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "libcppbor_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "LICENSE",
    ],
}

cc_defaults {
    name: "libcppbor_defaults",
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
    ],
}

cc_library {
    name: "libcppbor",
    defaults: [
        "libcppbor_defaults",
    ],
    vendor_available: true,
    host_supported: true,
    srcs: [
        "src/cppbor.cpp",
        "src/cppbor_parse.cpp",
    ],
    export_include_dirs: [
        "include/cppbor",
    ],
    shared_libs: [
        "libbase",
        "libcrypto",
    ],
    target: {
        windows: {
            enabled: true,
        },
    },
}

cc_library {
    name: "libcppbor_external",
    defaults: [
        "libcppbor_defaults",
    ],
    vendor_available: true,
    host_supported: true,
    srcs: [
        "src/cppbor.cpp",
        "src/cppbor_parse.cpp",
    ],
    export_include_dirs: [
        "include/cppbor",
    ],
    shared_libs: [
        "libbase",
        "libcrypto",
    ],
    target: {
        windows: {
            enabled: true,
        },
    },
}

cc_test {
    name: "cppbor_test",
    defaults: [
        "libcppbor_defaults",
    ],
    srcs: [
        "tests/cppbor_test.cpp",
    ],
    shared_libs: [
        "libcppbor",
        "libbase",
    ],
    static_libs: [
        "libgmock",
    ],
    test_suites: ["general-tests"],
}

cc_test_host {
    name: "cppbor_host_test",
    defaults: [
        "libcppbor_defaults",
    ],
    srcs: [
        "tests/cppbor_test.cpp",
    ],
    shared_libs: [
        "libcppbor",
        "libbase",
    ],
    static_libs: [
        "libgmock",
    ],
    test_suites: ["general-tests"],
}
