// Copyright (C) 2021 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 {
    default_team: "trendy_team_fwk_telephony",
    // 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_library {
    name: "android.hardware.radio-library.compat",
    relative_install_path: "hw",
    vendor: true,
    cflags: [
        "-Wall",
        "-Wextra",
        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
    ],
    shared_libs: [
        "android.hardware.radio.config-V3-ndk",
        "android.hardware.radio.config@1.0",
        "android.hardware.radio.config@1.1",
        "android.hardware.radio.config@1.2",
        "android.hardware.radio.config@1.3",
        "android.hardware.radio.data-V3-ndk",
        "android.hardware.radio.ims-V2-ndk",
        "android.hardware.radio.ims.media-V2-ndk",
        "android.hardware.radio.messaging-V3-ndk",
        "android.hardware.radio.modem-V3-ndk",
        "android.hardware.radio.network-V3-ndk",
        "android.hardware.radio.sap-V1-ndk",
        "android.hardware.radio.sim-V3-ndk",
        "android.hardware.radio.voice-V3-ndk",
        "android.hardware.radio@1.0",
        "android.hardware.radio@1.1",
        "android.hardware.radio@1.2",
        "android.hardware.radio@1.3",
        "android.hardware.radio@1.4",
        "android.hardware.radio@1.5",
        "android.hardware.radio@1.6",
        "libbase",
        "libbinder_ndk",
        "libhidlbase",
        "libutils",
    ],
    srcs: [
        "CallbackManager.cpp",
        "DriverContext.cpp",
        "RadioCompatBase.cpp",
        "RadioIndication.cpp",
        "RadioResponse.cpp",
        "commonStructs.cpp",
        "config/RadioConfig.cpp",
        "config/RadioConfigIndication.cpp",
        "config/RadioConfigResponse.cpp",
        "config/structs.cpp",
        "data/RadioIndication-data.cpp",
        "data/RadioResponse-data.cpp",
        "data/RadioData.cpp",
        "data/structs.cpp",
        "ims/RadioIndication-ims.cpp",
        "ims/RadioResponse-ims.cpp",
        "ims/RadioIms.cpp",
        "ims/media/RadioImsMediaSession.cpp",
        "ims/media/RadioImsMedia.cpp",
        "messaging/RadioIndication-messaging.cpp",
        "messaging/RadioMessaging.cpp",
        "messaging/RadioResponse-messaging.cpp",
        "messaging/structs.cpp",
        "modem/RadioIndication-modem.cpp",
        "modem/RadioResponse-modem.cpp",
        "modem/RadioModem.cpp",
        "modem/structs.cpp",
        "network/RadioIndication-network.cpp",
        "network/RadioNetwork.cpp",
        "network/RadioResponse-network.cpp",
        "network/structs.cpp",
        "network/utils.cpp",
        "sap/Sap.cpp",
        "sap/SapCallback.cpp",
        "sap/structs.cpp",
        "sim/RadioIndication-sim.cpp",
        "sim/RadioResponse-sim.cpp",
        "sim/RadioSim.cpp",
        "sim/structs.cpp",
        "voice/RadioIndication-voice.cpp",
        "voice/RadioResponse-voice.cpp",
        "voice/RadioVoice.cpp",
        "voice/structs.cpp",
    ],
    export_include_dirs: ["include"],
}
