//
// Copyright (C) 2018 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.
cc_library_shared {
    name: "nfc_nci_nxp",
    defaults: ["hidl_defaults"],
    proprietary: true,

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        // Allow implicit fallthroughs in phDnldNfc_Internal.cc and phNxpConfig.cpp until they are fixed.
        "-Wno-error=implicit-fallthrough",
    ],

    srcs: [
        "halimpl/dnld/phDnldNfc.cc",
        "halimpl/dnld/phDnldNfc_Internal.cc",
        "halimpl/dnld/phDnldNfc_Utils.cc",
        "halimpl/dnld/phNxpNciHal_Dnld.cc",
        "halimpl/hal/phNxpNciHal.cc",
        "halimpl/hal/phNxpNciHal_NfcDepSWPrio.cc",
        "halimpl/hal/phNxpNciHal_dta.cc",
        "halimpl/hal/phNxpNciHal_ext.cc",
        "halimpl/log/phNxpLog.cc",
        "halimpl/self-test/phNxpNciHal_SelfTest.cc",
        "halimpl/src/adaptation/EseAdaptation.cpp",
        "halimpl/tml/phDal4Nfc_messageQueueLib.cc",
        "halimpl/tml/phOsalNfc_Timer.cc",
        "halimpl/tml/phTmlNfc.cc",
        "halimpl/tml/phTmlNfc_i2c.cc",
        "halimpl/tml/spi_spm.cc",
        "halimpl/utils/NxpNfcCapability.cpp",
        "halimpl/utils/phNxpConfig.cpp",
        "halimpl/utils/phNxpNciHal_utils.cc",
        "halimpl/utils/sparse_crc32.cc",
        "halimpl/utils/NfccPowerTracker.cpp",
    ],

    local_include_dirs: [
        "halimpl/dnld",
        "halimpl/hal",
        "halimpl/log",
        "halimpl/self-test",
        "halimpl/src/include",
        "halimpl/tml",
        "halimpl/utils",
    ],

    export_include_dirs: [
        "extns/impl",
        "halimpl/common",
        "halimpl/inc",
    ],

    shared_libs: [
        "android.hardware.nfc@1.0",
        "android.hardware.nfc@1.1",
        "android.hardware.nfc@1.2",
        "android.hardware.secure_element@1.0",
        "libbase",
        "libcutils",
        "libhardware",
        "libhardware_legacy",
        "libhidlbase",
        "libhidltransport",
        "liblog",
        "libutils",
        "ese_spi_nxp",
        "vendor.nxp.nxpese@1.0",
    ],
}

cc_defaults {
    name: "nxp_nfc_defaults",
    relative_install_path: "hw",
    proprietary: true,
    defaults: ["hidl_defaults"],
    srcs: [
        "extns/impl/NxpNfc.cpp",
    ],

    shared_libs: [
        "nfc_nci_nxp",
        "libbase",
        "libcutils",
        "libhardware",
        "liblog",
        "libutils",
        "android.hardware.nfc@1.0",
        "android.hardware.nfc@1.1",
        "android.hardware.nfc@1.2",
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
        "vendor.nxp.nxpese@1.0",
        "ese_spi_nxp",
        "vendor.nxp.nxpnfc@1.0",
    ],
}

cc_binary {
    name: "android.hardware.nfc@1.1-service",
    init_rc: ["1.1/android.hardware.nfc@1.1-service.rc"],
    defaults: ["nxp_nfc_defaults"],
    srcs: [
        "1.1/NxpNfcService.cpp",
        "1.1/Nfc.cpp",
    ],
}

cc_binary {
    name: "android.hardware.nfc@1.2-service",
    init_rc: ["1.2/android.hardware.nfc@1.2-service.rc"],
    defaults: ["nxp_nfc_defaults"],
    srcs: [
        "1.2/NxpNfcService.cpp",
        "1.2/Nfc.cpp",
    ],
}