//
// Copyright (C) 2022 The Android Open Source Project
//
// 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
//
//      http://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 {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

cc_defaults {
    name: "BroadcastRadioHalDefaults",
    static_libs: [
        "android.hardware.broadcastradio-V2-ndk",
        "android.hardware.broadcastradio@common-utils-aidl-lib-V2",
        "android.hardware.broadcastradio@common-utils-lib",
    ],
    shared_libs: [
        "libbase",
        "libbinder_ndk",
        "liblog",
        "libcutils",
    ],
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
    ],
}

cc_binary {
    name: "android.hardware.broadcastradio-service.default",
    relative_install_path: "hw",
    init_rc: ["broadcastradio-default.rc"],
    vintf_fragments: ["broadcastradio-default.xml"],
    vendor: true,
    defaults: [
        "BroadcastRadioHalDefaults",
    ],
    srcs: [
        "main.cpp",
    ],
    static_libs: [
        "DefaultBroadcastRadioHal",
    ],
}

cc_library {
    name: "DefaultBroadcastRadioHal",
    vendor_available: true,
    export_include_dirs: ["."],
    defaults: [
        "BroadcastRadioHalDefaults",
    ],
    srcs: [
        "BroadcastRadio.cpp",
        "VirtualProgram.cpp",
        "VirtualRadio.cpp",
    ],
}

cc_fuzz {
    name: "android.hardware.broadcastradio-service.default_fuzzer",
    // TODO(b/307611931): avoid fuzzing on vendor until hermiticity issue is fixed
    // vendor: true,
    defaults: [
        "BroadcastRadioHalDefaults",
        "service_fuzzer_defaults",
    ],
    static_libs: [
        "DefaultBroadcastRadioHal",
        "android.hardware.broadcastradio-V2-ndk",
    ],
    srcs: [
        "fuzzer.cpp",
    ],
    fuzz_config: {
        cc: [
            "xuweilin@google.com",
        ],
    },
}
