/******************************************************************************
 *
 *  Copyright 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 {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "system_bt_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["system_bt_license"],
}

cc_defaults {
    name: "fluoride_btif_defaults_qti_adva",
    defaults: ["fluoride_defaults"],
    include_dirs: [
        "vendor/qcom/opensource/commonsys/system/bt",
        "vendor/qcom/opensource/commonsys/system/bt/bta/include",
        "vendor/qcom/opensource/commonsys/system/bt/bta/ag",
        "vendor/qcom/opensource/commonsys/system/bt/btcore/include",
        "vendor/qcom/opensource/commonsys/system/bt/hci/include",
        "vendor/qcom/opensource/commonsys/system/bt/internal_include",
        "vendor/qcom/opensource/commonsys/system/bt/stack/include",
        "vendor/qcom/opensource/commonsys/system/bt/stack/btm",
        "vendor/qcom/opensource/commonsys/system/bt/udrv/include",
        "vendor/qcom/opensource/commonsys/system/bt/vnd/include",
        "vendor/qcom/opensource/commonsys/system/bt/utils/include",
        "vendor/qcom/opensource/commonsys/bluetooth_ext/system_bt_ext",
        "vendor/qcom/opensource/commonsys/bluetooth_ext/vhal/include",
        "vendor/qcom/opensource/commonsys/bluetooth_ext/system_bt_ext/bta/include",
        "vendor/qcom/opensource/commonsys/bluetooth_ext/system_bt_ext/btif/include",
        "vendor/qcom/opensource/commonsys-intf/bluetooth/include",
        "vendor/qcom/opensource/commonsys/system/bt/device/include",
        "vendor/qcom/opensource/commonsys/system/bt/btif/include",
        "vendor/qcom/opensource/commonsys/system/bt/bta/include",
        "vendor/qcom/opensource/commonsys/system/bt/bta/sys",
        "system/bt/common",
        "vendor/qcom/opensource/commonsys/bluetooth_lea/system/bt/btif/include",
        "vendor/qcom/opensource/commonsys/bluetooth_lea/system/bt/bta/include",
        "vendor/qcom/opensource/commonsys/bluetooth_lea/system/bt",
        "vendor/qcom/opensource/commonsys/bluetooth_lea/vhal/include",
        "external/libxml2/include",
    ],
    shared_libs: [
        "libcutils",
        "vendor.qti.hardware.bluetooth_audio@2.0",
        "vendor.qti.hardware.bluetooth_audio@2.1",
        "libcrypto",
        "libxml2",
    ],
    header_libs: ["libbluetooth_headers"],
    cflags: [
        "-DBUILDCFG",
        "-DADV_AUDIO_FEATURE=1",
    ],
    required: ["leaudio_configs.xml"],
}

// BTA static library for target
// ========================================================
cc_library_static {
    name: "libbt-btif_qti_adva",
    defaults: ["fluoride_btif_defaults_qti_adva"],
    enabled: false,
    srcs: [
        "src/bluetooth_adv_audio.cc",
        "src/btif_bap_broadcast.cc",
        "src/btif_csip.cc",
        "src/btif_acm.cc",
        "src/btif_pacs_client.cc",
        "src/btif_ascs_client.cc",
        "src/btif_bap_config.cc",
        "src/btif_bap_uclient.cc",
        "src/btif_bap_codec_utils.cc",
        "src/btif_vmcp.cc",
        "src/btif_apm.cc",
        "src/btif_vcp_controller.cc",
        "src/btif_dm_adv_audio.cc",
        "src/btif_acm_source.cc",
        "src/btif_mcp.cc",
        "src/btif_cc.cc"
    ],
}

// Bluetooth le audio configs xml
// ========================================================
prebuilt_etc {
    name: "leaudio_configs.xml",
    src: "leaudio_configs.xml",
    sub_dir: "bluetooth",
    system_ext_specific: true,
}
