#
#  Copyright (C) 2015 Google, Inc.
#
#  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.
#

static_library("bta") {
  sources = [
    "ag/bta_ag_act.c",
    "ag/bta_ag_api.c",
    "ag/bta_ag_at.c",
    "ag/bta_ag_cfg.c",
    "ag/bta_ag_ci.c",
    "ag/bta_ag_cmd.c",
    "ag/bta_ag_main.c",
    "ag/bta_ag_rfc.c",
    "ag/bta_ag_sco.c",
    "ag/bta_ag_sdp.c",
    "ar/bta_ar.c",
    "av/bta_av_aact.c",
    "av/bta_av_act.c",
    "av/bta_av_api.c",
    "av/bta_av_cfg.c",
    "av/bta_av_ci.c",
    "av/bta_av_main.c",
    "av/bta_av_sbc.c",
    "av/bta_av_ssm.c",
    "dm/bta_dm_act.c",
    "dm/bta_dm_api.c",
    "dm/bta_dm_cfg.c",
    "dm/bta_dm_ci.c",
    "dm/bta_dm_main.c",
    "dm/bta_dm_pm.c",
    "dm/bta_dm_sco.c",
    "gatt/bta_gattc_act.c",
    "gatt/bta_gattc_api.c",
    "gatt/bta_gattc_cache.c",
    "gatt/bta_gattc_ci.c",
    "gatt/bta_gattc_main.c",
    "gatt/bta_gattc_utils.c",
    "gatt/bta_gatts_act.c",
    "gatt/bta_gatts_api.c",
    "gatt/bta_gatts_main.c",
    "gatt/bta_gatts_utils.c",
    "hf_client/bta_hf_client_act.c",
    "hf_client/bta_hf_client_api.c",
    "hf_client/bta_hf_client_at.c",
    "hf_client/bta_hf_client_cmd.c",
    "hf_client/bta_hf_client_main.c",
    "hf_client/bta_hf_client_rfc.c",
    "hf_client/bta_hf_client_sdp.c",
    "hf_client/bta_hf_client_sco.c",
    "hh/bta_hh_act.c",
    "hh/bta_hh_api.c",
    "hh/bta_hh_cfg.c",
    "hh/bta_hh_le.c",
    "hh/bta_hh_main.c",
    "hh/bta_hh_utils.c",
    "hl/bta_hl_act.c",
    "hl/bta_hl_api.c",
    "hl/bta_hl_ci.c",
    "hl/bta_hl_main.c",
    "hl/bta_hl_sdp.c",
    "hl/bta_hl_utils.c",
    "jv/bta_jv_act.c",
    "jv/bta_jv_api.c",
    "jv/bta_jv_cfg.c",
    "jv/bta_jv_main.c",
    "mce/bta_mce_act.c",
    "mce/bta_mce_api.c",
    "mce/bta_mce_cfg.c",
    "mce/bta_mce_main.c",
    "pan/bta_pan_act.c",
    "pan/bta_pan_api.c",
    "pan/bta_pan_ci.c",
    "pan/bta_pan_main.c",
    "sdp/bta_sdp.c",
    "sdp/bta_sdp_act.c",
    "sdp/bta_sdp_api.c",
    "sdp/bta_sdp_cfg.c",
    "sys/bta_sys_conn.c",
    "sys/bta_sys_main.c",
    "sys/utl.c",
  ]

  include_dirs = [
    "dm",
    "hh",
    "include",
    "sys",
    "//",
    "//btcore/include",
    "//gki/common",
    "//gki/ulinux",
    "//hci/include",
    "//include",
    "//stack/include",
    "//stack/btm",
    "//osi/include",
    "//udrv/include",
    "//utils/include",
    "//vnd/include",
  ]
}
