119e95205Sopenharmony_ci# Copyright (C) 2021-2022 Huawei Device Co., Ltd.
219e95205Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
319e95205Sopenharmony_ci# you may not use this file except in compliance with the License.
419e95205Sopenharmony_ci# You may obtain a copy of the License at
519e95205Sopenharmony_ci#
619e95205Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
719e95205Sopenharmony_ci#
819e95205Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
919e95205Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1019e95205Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1119e95205Sopenharmony_ci# See the License for the specific language governing permissions and
1219e95205Sopenharmony_ci# limitations under the License.
1319e95205Sopenharmony_ci
1419e95205Sopenharmony_ciimport("//build/ohos.gni")
1519e95205Sopenharmony_ciimport("//foundation/communication/bluetooth_service/bluetooth.gni")
1619e95205Sopenharmony_ci
1719e95205Sopenharmony_ciSUBSYSTEM_DIR = "//foundation/communication"
1819e95205Sopenharmony_ciPART_DIR = "$SUBSYSTEM_DIR/bluetooth_service/services/bluetooth"
1919e95205Sopenharmony_ciBT_SERVICE_DIR = "$PART_DIR/service"
2019e95205Sopenharmony_ci
2119e95205Sopenharmony_cideclare_args() {
2219e95205Sopenharmony_ci  bluetooth_service_avrcp_avsession = false
2319e95205Sopenharmony_ci}
2419e95205Sopenharmony_ci
2519e95205Sopenharmony_ciServiceBleScanFilter = [ "src/ble/ble_scan_filter/src/ble_scan_filter_lsf.cpp" ]
2619e95205Sopenharmony_ci
2719e95205Sopenharmony_ciServiceBleSrc = [
2819e95205Sopenharmony_ci  "src/ble/ble_adapter.cpp",
2919e95205Sopenharmony_ci  "src/ble/ble_advertiser_impl.cpp",
3019e95205Sopenharmony_ci  "src/ble/ble_central_manager_impl.cpp",
3119e95205Sopenharmony_ci  "src/ble/ble_config.cpp",
3219e95205Sopenharmony_ci  "src/ble/ble_properties.cpp",
3319e95205Sopenharmony_ci  "src/ble/ble_security.cpp",
3419e95205Sopenharmony_ci  "src/ble/ble_utils.cpp",
3519e95205Sopenharmony_ci]
3619e95205Sopenharmony_ci
3719e95205Sopenharmony_ciServiceClassicSrc = [
3819e95205Sopenharmony_ci  "src/classic/classic_adapter_properties.cpp",
3919e95205Sopenharmony_ci  "src/classic/classic_adapter.cpp",
4019e95205Sopenharmony_ci  "src/classic/classic_battery_observer.cpp",
4119e95205Sopenharmony_ci  "src/classic/classic_bluetooth_data.cpp",
4219e95205Sopenharmony_ci  "src/classic/classic_config.cpp",
4319e95205Sopenharmony_ci  "src/classic/classic_data_structure.cpp",
4419e95205Sopenharmony_ci  "src/classic/classic_remote_device.cpp",
4519e95205Sopenharmony_ci  "src/classic/classic_utils.cpp",
4619e95205Sopenharmony_ci]
4719e95205Sopenharmony_ci
4819e95205Sopenharmony_ciServiceCommonSrc = [
4919e95205Sopenharmony_ci  "src/common/adapter_config.cpp",
5019e95205Sopenharmony_ci  "src/common/adapter_device_config.cpp",
5119e95205Sopenharmony_ci  "src/common/adapter_device_info.cpp",
5219e95205Sopenharmony_ci  "src/common/adapter_manager.cpp",
5319e95205Sopenharmony_ci  "src/common/adapter_state_machine.cpp",
5419e95205Sopenharmony_ci  "src/common/class_creator.cpp",
5519e95205Sopenharmony_ci  "src/common/compat.cpp",
5619e95205Sopenharmony_ci  "src/common/power_device.cpp",
5719e95205Sopenharmony_ci  "src/common/power_manager.cpp",
5819e95205Sopenharmony_ci  "src/common/power_spec.cpp",
5919e95205Sopenharmony_ci  "src/common/power_state_machine.cpp",
6019e95205Sopenharmony_ci  "src/common/profile_config.cpp",
6119e95205Sopenharmony_ci  "src/common/profile_info.cpp",
6219e95205Sopenharmony_ci  "src/common/profile_service_manager.cpp",
6319e95205Sopenharmony_ci  "src/common/sys_state_machine.cpp",
6419e95205Sopenharmony_ci]
6519e95205Sopenharmony_ci
6619e95205Sopenharmony_ciServiceGattSrc = [
6719e95205Sopenharmony_ci  "src/gatt/gatt_cache.cpp",
6819e95205Sopenharmony_ci  "src/gatt/gatt_client_profile.cpp",
6919e95205Sopenharmony_ci  "src/gatt/gatt_client_service.cpp",
7019e95205Sopenharmony_ci  "src/gatt/gatt_connection_manager.cpp",
7119e95205Sopenharmony_ci  "src/gatt/gatt_database.cpp",
7219e95205Sopenharmony_ci  "src/gatt/gatt_server_profile.cpp",
7319e95205Sopenharmony_ci  "src/gatt/gatt_server_service.cpp",
7419e95205Sopenharmony_ci  "src/gatt/gatt_service_base.cpp",
7519e95205Sopenharmony_ci  "src/gatt/gatt_based_services_manager.cpp",
7619e95205Sopenharmony_ci  "src/gatt/dis/device_information_service.cpp",
7719e95205Sopenharmony_ci  "src/gatt/gas/generic_access_service.cpp",
7819e95205Sopenharmony_ci  "src/gatt/gatts/gatt_service_over_bredr.cpp",
7919e95205Sopenharmony_ci  "src/gatt/gatts/generic_attribute_service.cpp",
8019e95205Sopenharmony_ci]
8119e95205Sopenharmony_ci
8219e95205Sopenharmony_ciServiceGavdpSrc = [
8319e95205Sopenharmony_ci  "src/gavdp/a2dp_avdtp.cpp",
8419e95205Sopenharmony_ci  "src/gavdp/a2dp_codec_thread.cpp",
8519e95205Sopenharmony_ci  "src/gavdp/a2dp_profile_peer.cpp",
8619e95205Sopenharmony_ci  "src/gavdp/a2dp_profile.cpp",
8719e95205Sopenharmony_ci  "src/gavdp/a2dp_sdp.cpp",
8819e95205Sopenharmony_ci  "src/gavdp/a2dp_service_connection.cpp",
8919e95205Sopenharmony_ci  "src/gavdp/a2dp_service_device.cpp",
9019e95205Sopenharmony_ci  "src/gavdp/a2dp_service_state_machine.cpp",
9119e95205Sopenharmony_ci  "src/gavdp/a2dp_service.cpp",
9219e95205Sopenharmony_ci  "src/gavdp/a2dp_sink.cpp",
9319e95205Sopenharmony_ci  "src/gavdp/a2dp_source.cpp",
9419e95205Sopenharmony_ci  "src/gavdp/a2dp_state_machine.cpp",
9519e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/a2dp_aac_param_ctrl.cpp",
9619e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/a2dp_codec_config.cpp",
9719e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/a2dp_codec_factory.cpp",
9819e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/a2dp_sbc_param_ctrl.cpp",
9919e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/sbccodecctrl/src/a2dp_decoder_sbc.cpp",
10019e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/sbccodecctrl/src/a2dp_encoder_sbc.cpp",
10119e95205Sopenharmony_ci  "src/gavdp/a2dp_codec/sbccodecctrl/src/a2dp_sbc_dynamic_lib_ctrl.cpp",
10219e95205Sopenharmony_ci  "src/gavdp/a2dp_shared_buffer.cpp",
10319e95205Sopenharmony_ci]
10419e95205Sopenharmony_ci
10519e95205Sopenharmony_ciServiceObexSrc = [
10619e95205Sopenharmony_ci  "src/obex/obex_body.cpp",
10719e95205Sopenharmony_ci  "src/obex/obex_client.cpp",
10819e95205Sopenharmony_ci  "src/obex/obex_headers.cpp",
10919e95205Sopenharmony_ci  "src/obex/obex_mp_client.cpp",
11019e95205Sopenharmony_ci  "src/obex/obex_mp_server.cpp",
11119e95205Sopenharmony_ci  "src/obex/obex_server.cpp",
11219e95205Sopenharmony_ci  "src/obex/obex_session.cpp",
11319e95205Sopenharmony_ci  "src/obex/obex_socket_transport.cpp",
11419e95205Sopenharmony_ci  "src/obex/obex_transport.cpp",
11519e95205Sopenharmony_ci  "src/obex/obex_utils.cpp",
11619e95205Sopenharmony_ci]
11719e95205Sopenharmony_ci
11819e95205Sopenharmony_ciServiceSockSrc = [
11919e95205Sopenharmony_ci  "src/sock/socket.cpp",
12019e95205Sopenharmony_ci  "src/sock/socket_gap_client.cpp",
12119e95205Sopenharmony_ci  "src/sock/socket_gap_server.cpp",
12219e95205Sopenharmony_ci  "src/sock/socket_sdp_client.cpp",
12319e95205Sopenharmony_ci  "src/sock/socket_sdp_server.cpp",
12419e95205Sopenharmony_ci  "src/sock/socket_service.cpp",
12519e95205Sopenharmony_ci  "src/sock/socket_listener.cpp",
12619e95205Sopenharmony_ci  "src/sock/socket_util.cpp",
12719e95205Sopenharmony_ci]
12819e95205Sopenharmony_ci
12919e95205Sopenharmony_ciServiceTransportSrc = [
13019e95205Sopenharmony_ci  "src/transport/transport_factory.cpp",
13119e95205Sopenharmony_ci  "src/transport/transport_l2cap.cpp",
13219e95205Sopenharmony_ci  "src/transport/transport_rfcomm.cpp",
13319e95205Sopenharmony_ci]
13419e95205Sopenharmony_ci
13519e95205Sopenharmony_ciServiceUtilSrc = [
13619e95205Sopenharmony_ci  "src/util/bluetooth_common_event_helper.cpp",
13719e95205Sopenharmony_ci  "src/util/dispatcher.cpp",
13819e95205Sopenharmony_ci  "src/util/semaphore_utils.cpp",
13919e95205Sopenharmony_ci  "src/util/state_machine.cpp",
14019e95205Sopenharmony_ci  "src/util/timer.cpp",
14119e95205Sopenharmony_ci  "src/util/xml_parse.cpp",
14219e95205Sopenharmony_ci  "src/util/log_util.cpp",
14319e95205Sopenharmony_ci]
14419e95205Sopenharmony_ci
14519e95205Sopenharmony_ciServicePermissionSrc = [
14619e95205Sopenharmony_ci  "src/permission/auth_center.cpp",
14719e95205Sopenharmony_ci  "src/permission/permission_helper.cpp",
14819e95205Sopenharmony_ci  "src/permission/permission_utils.cpp",
14919e95205Sopenharmony_ci]
15019e95205Sopenharmony_ci
15119e95205Sopenharmony_ciconfig("btservice_public_config") {
15219e95205Sopenharmony_ci  include_dirs = [
15319e95205Sopenharmony_ci    "include",
15419e95205Sopenharmony_ci    "$SUBSYSTEM_DIR/bluetooth/interfaces/inner_api/include",
15519e95205Sopenharmony_ci    "$SUBSYSTEM_DIR/bluetooth/frameworks/inner/include",
15619e95205Sopenharmony_ci  ]
15719e95205Sopenharmony_ci}
15819e95205Sopenharmony_ci
15919e95205Sopenharmony_ciconfig("btservice_config") {
16019e95205Sopenharmony_ci  include_dirs = [
16119e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src",
16219e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/base",
16319e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/common",
16419e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/permission",
16519e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/util",
16619e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/ble/ble_scan_filter",
16719e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/gavdp/a2dp_codec/aaccodecctrl_l2/include",
16819e95205Sopenharmony_ci    "$BT_SERVICE_DIR/src/gavdp/a2dp_codec/sbccodecctrl/include",
16919e95205Sopenharmony_ci    "$PART_DIR/common",
17019e95205Sopenharmony_ci  ]
17119e95205Sopenharmony_ci
17219e95205Sopenharmony_ci  cflags_cc = [
17319e95205Sopenharmony_ci    "-fPIC",
17419e95205Sopenharmony_ci    "-fexceptions",
17519e95205Sopenharmony_ci    "-Wno-pessimizing-move",
17619e95205Sopenharmony_ci    "-Wno-unused-parameter",
17719e95205Sopenharmony_ci    "-Wunused-variable",
17819e95205Sopenharmony_ci    "-Wreorder",
17919e95205Sopenharmony_ci    "-Wmissing-braces",
18019e95205Sopenharmony_ci    "-Wimplicit-fallthrough",
18119e95205Sopenharmony_ci    "-Wunused-private-field",
18219e95205Sopenharmony_ci    "-Wlogical-op-parentheses",
18319e95205Sopenharmony_ci    "-Wmissing-field-initializers",
18419e95205Sopenharmony_ci    "-Wparentheses-equality",
18519e95205Sopenharmony_ci    "-Wparentheses",
18619e95205Sopenharmony_ci    "-Wdelete-non-abstract-non-virtual-dtor",
18719e95205Sopenharmony_ci    "-Wignored-qualifiers",
18819e95205Sopenharmony_ci    "-Wdelete-abstract-non-virtual-dtor",
18919e95205Sopenharmony_ci    "-Wuninitialized",
19019e95205Sopenharmony_ci    "-Woverloaded-virtual",
19119e95205Sopenharmony_ci    "-Wdangling-else",
19219e95205Sopenharmony_ci    "-Woverloaded-virtual",
19319e95205Sopenharmony_ci    "-Wno-non-c-typedef-for-linkage",
19419e95205Sopenharmony_ci    "-Wno-unused-but-set-variable",
19519e95205Sopenharmony_ci    "-Wno-array-parameter",
19619e95205Sopenharmony_ci  ]
19719e95205Sopenharmony_ci}
19819e95205Sopenharmony_ci
19919e95205Sopenharmony_ciohos_shared_library("btservice") {
20019e95205Sopenharmony_ci  # sanitize = {
20119e95205Sopenharmony_ci  #   cfi = true
20219e95205Sopenharmony_ci  #   blocklist = "./bluetooth_service_blocklist.txt"
20319e95205Sopenharmony_ci  # }
20419e95205Sopenharmony_ci  stack_protector_ret = true
20519e95205Sopenharmony_ci  configs = [ ":btservice_config" ]
20619e95205Sopenharmony_ci  public_configs = [ ":btservice_public_config" ]
20719e95205Sopenharmony_ci
20819e95205Sopenharmony_ci  if (bluetooth_service_avrcp_avsession) {
20919e95205Sopenharmony_ci    defines = [ "AVRCP_AVSESSION" ]
21019e95205Sopenharmony_ci  }
21119e95205Sopenharmony_ci
21219e95205Sopenharmony_ci  sources = ServiceCommonSrc + ServiceUtilSrc
21319e95205Sopenharmony_ci  sources += ServiceBleScanFilter
21419e95205Sopenharmony_ci  sources += ServiceBleSrc
21519e95205Sopenharmony_ci  sources += ServiceClassicSrc
21619e95205Sopenharmony_ci  sources += ServiceGattSrc
21719e95205Sopenharmony_ci  sources += ServiceGavdpSrc
21819e95205Sopenharmony_ci  sources += ServiceObexSrc
21919e95205Sopenharmony_ci  sources += ServiceSockSrc
22019e95205Sopenharmony_ci  sources += ServiceTransportSrc
22119e95205Sopenharmony_ci  sources += ServicePermissionSrc
22219e95205Sopenharmony_ci
22319e95205Sopenharmony_ci  if (bluetooth_service_a2dp_sink_feature) {
22419e95205Sopenharmony_ci    sources += [ "src/a2dp_snk/a2dp_snk_service.cpp" ]
22519e95205Sopenharmony_ci  }
22619e95205Sopenharmony_ci
22719e95205Sopenharmony_ci  if (bluetooth_service_a2dp_source_feature) {
22819e95205Sopenharmony_ci    sources += [ "src/a2dp_src/a2dp_src_service.cpp" ]
22919e95205Sopenharmony_ci  }
23019e95205Sopenharmony_ci
23119e95205Sopenharmony_ci  if (bluetooth_service_avrcp_ct_feature) {
23219e95205Sopenharmony_ci    sources += [
23319e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_browse.cpp",
23419e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_connection.cpp",
23519e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_gap.cpp",
23619e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_notification.cpp",
23719e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_packet.cpp",
23819e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_pass_through.cpp",
23919e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_profile.cpp",
24019e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_sdp.cpp",
24119e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_service.cpp",
24219e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_state_machine.cpp",
24319e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_sub_unit_info.cpp",
24419e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_unit_info.cpp",
24519e95205Sopenharmony_ci      "src/avrcp_ct/avrcp_ct_vendor.cpp",
24619e95205Sopenharmony_ci    ]
24719e95205Sopenharmony_ci  }
24819e95205Sopenharmony_ci
24919e95205Sopenharmony_ci  if (bluetooth_service_avrcp_tg_feature) {
25019e95205Sopenharmony_ci    sources += [
25119e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_browse.cpp",
25219e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_connection.cpp",
25319e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_gap.cpp",
25419e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_notification.cpp",
25519e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_packet.cpp",
25619e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_pass_through.cpp",
25719e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_profile.cpp",
25819e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_sdp.cpp",
25919e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_service.cpp",
26019e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_state_machine.cpp",
26119e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_sub_unit_info.cpp",
26219e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_unit_info.cpp",
26319e95205Sopenharmony_ci      "src/avrcp_tg/avrcp_tg_vendor.cpp",
26419e95205Sopenharmony_ci    ]
26519e95205Sopenharmony_ci  }
26619e95205Sopenharmony_ci
26719e95205Sopenharmony_ci  if (bluetooth_service_hfp_ag_feature) {
26819e95205Sopenharmony_ci    sources += [
26919e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_audio_connection.cpp",
27019e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_command_parser.cpp",
27119e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_command_processor.cpp",
27219e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_data_connection.cpp",
27319e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_data_connection_server.cpp",
27419e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_gap_client.cpp",
27519e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_gap_server.cpp",
27619e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_profile.cpp",
27719e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_profile_event_sender.cpp",
27819e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_rfcomm_connection.cpp",
27919e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_rfcomm_connection_server.cpp",
28019e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_sdp_client.cpp",
28119e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_sdp_server.cpp",
28219e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_service.cpp",
28319e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_statemachine.cpp",
28419e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_system_event_processer.cpp",
28519e95205Sopenharmony_ci      "src/hfp_ag/hfp_ag_system_interface.cpp",
28619e95205Sopenharmony_ci    ]
28719e95205Sopenharmony_ci  }
28819e95205Sopenharmony_ci
28919e95205Sopenharmony_ci  if (bluetooth_service_hfp_hf_feature) {
29019e95205Sopenharmony_ci    sources += [
29119e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_audio_connection.cpp",
29219e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_call_manager.cpp",
29319e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_command_parser.cpp",
29419e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_command_processor.cpp",
29519e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_data_connection.cpp",
29619e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_data_connection_server.cpp",
29719e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_gap_client.cpp",
29819e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_gap_server.cpp",
29919e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_profile.cpp",
30019e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_profile_event_sender.cpp",
30119e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_rfcomm_connection.cpp",
30219e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_rfcomm_connection_server.cpp",
30319e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_sdp_client.cpp",
30419e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_sdp_server.cpp",
30519e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_service.cpp",
30619e95205Sopenharmony_ci      "src/hfp_hf/hfp_hf_statemachine.cpp",
30719e95205Sopenharmony_ci    ]
30819e95205Sopenharmony_ci  }
30919e95205Sopenharmony_ci
31019e95205Sopenharmony_ci  if (bluetooth_service_hid_host_feature) {
31119e95205Sopenharmony_ci    sources += [
31219e95205Sopenharmony_ci      "src/hid_host/hid_host_hogp.cpp",
31319e95205Sopenharmony_ci      "src/hid_host/hid_host_l2cap_connection.cpp",
31419e95205Sopenharmony_ci      "src/hid_host/hid_host_sdp_client.cpp",
31519e95205Sopenharmony_ci      "src/hid_host/hid_host_service.cpp",
31619e95205Sopenharmony_ci      "src/hid_host/hid_host_statemachine.cpp",
31719e95205Sopenharmony_ci      "src/hid_host/hid_host_uhid.cpp",
31819e95205Sopenharmony_ci    ]
31919e95205Sopenharmony_ci  }
32019e95205Sopenharmony_ci
32119e95205Sopenharmony_ci  if (bluetooth_service_pan_feature) {
32219e95205Sopenharmony_ci    sources += [
32319e95205Sopenharmony_ci      "src/pan/pan_bnep.cpp",
32419e95205Sopenharmony_ci      "src/pan/pan_network.cpp",
32519e95205Sopenharmony_ci      "src/pan/pan_sdp.cpp",
32619e95205Sopenharmony_ci      "src/pan/pan_service.cpp",
32719e95205Sopenharmony_ci      "src/pan/pan_statemachine.cpp",
32819e95205Sopenharmony_ci    ]
32919e95205Sopenharmony_ci  }
33019e95205Sopenharmony_ci
33119e95205Sopenharmony_ci  deps = [
33219e95205Sopenharmony_ci    "$PART_DIR/external:btdummy",
33319e95205Sopenharmony_ci    "$PART_DIR/stack:btstack",
33419e95205Sopenharmony_ci    "//third_party/bounds_checking_function:libsec_shared",
33519e95205Sopenharmony_ci    "//third_party/libxml2:xml2",
33619e95205Sopenharmony_ci    "//third_party/openssl:libcrypto_shared",
33719e95205Sopenharmony_ci  ]
33819e95205Sopenharmony_ci
33919e95205Sopenharmony_ci  external_deps = [
34019e95205Sopenharmony_ci    "ability_base:want",
34119e95205Sopenharmony_ci    "access_token:libaccesstoken_sdk",
34219e95205Sopenharmony_ci    "access_token:libtokenid_sdk",
34319e95205Sopenharmony_ci    "audio_framework:audio_client",
34419e95205Sopenharmony_ci    "bluetooth:btcommon",
34519e95205Sopenharmony_ci    "c_utils:utils",
34619e95205Sopenharmony_ci    "common_event_service:cesfwk_innerkits",
34719e95205Sopenharmony_ci    "hdf_core:libhdi",
34819e95205Sopenharmony_ci    "hilog:libhilog",
34919e95205Sopenharmony_ci    "hisysevent:libhisysevent",
35019e95205Sopenharmony_ci    "ipc:ipc_core",
35119e95205Sopenharmony_ci    "jsoncpp:jsoncpp",
35219e95205Sopenharmony_ci    "samgr:samgr_proxy",
35319e95205Sopenharmony_ci  ]
35419e95205Sopenharmony_ci
35519e95205Sopenharmony_ci  if (bluetooth_service_hfp_ag_feature) {
35619e95205Sopenharmony_ci    external_deps += [
35719e95205Sopenharmony_ci      "call_manager:tel_call_manager_api",
35819e95205Sopenharmony_ci      "core_service:tel_core_service_api",
35919e95205Sopenharmony_ci      "state_registry:tel_state_registry_api",
36019e95205Sopenharmony_ci    ]
36119e95205Sopenharmony_ci  }
36219e95205Sopenharmony_ci
36319e95205Sopenharmony_ci  if (bluetooth_service_avrcp_avsession) {
36419e95205Sopenharmony_ci    external_deps += [
36519e95205Sopenharmony_ci      "ability_runtime:wantagent_innerkits",
36619e95205Sopenharmony_ci      "av_session:avsession_client",
36719e95205Sopenharmony_ci      "input:libmmi-client",
36819e95205Sopenharmony_ci      "multimedia_image_framework:image_native",
36919e95205Sopenharmony_ci    ]
37019e95205Sopenharmony_ci  }
37119e95205Sopenharmony_ci
37219e95205Sopenharmony_ci  subsystem_name = "communication"
37319e95205Sopenharmony_ci  part_name = "bluetooth_service"
37419e95205Sopenharmony_ci}
37519e95205Sopenharmony_ci
37619e95205Sopenharmony_ciSBC_CODEC_DIR = "$BT_SERVICE_DIR/src/gavdp/a2dp_codec/sbclib"
37719e95205Sopenharmony_ciohos_shared_library("btsbc") {
37819e95205Sopenharmony_ci  # sanitize = {
37919e95205Sopenharmony_ci  #   cfi = true
38019e95205Sopenharmony_ci  # }
38119e95205Sopenharmony_ci  stack_protector_ret = true
38219e95205Sopenharmony_ci  include_dirs = [ "$PART_DIR/common" ]
38319e95205Sopenharmony_ci  sources = [
38419e95205Sopenharmony_ci    "$SBC_CODEC_DIR/src/sbc_decoder.cpp",
38519e95205Sopenharmony_ci    "$SBC_CODEC_DIR/src/sbc_encoder.cpp",
38619e95205Sopenharmony_ci    "$SBC_CODEC_DIR/src/sbc_frame.cpp",
38719e95205Sopenharmony_ci  ]
38819e95205Sopenharmony_ci
38919e95205Sopenharmony_ci  deps = [
39019e95205Sopenharmony_ci    "$PART_DIR/external:btdummy",
39119e95205Sopenharmony_ci    "//third_party/bounds_checking_function:libsec_shared",
39219e95205Sopenharmony_ci  ]
39319e95205Sopenharmony_ci
39419e95205Sopenharmony_ci  external_deps = [ "hilog:libhilog" ]
39519e95205Sopenharmony_ci
39619e95205Sopenharmony_ci  cflags = [ "-Wno-array-bounds" ]
39719e95205Sopenharmony_ci  subsystem_name = "communication"
39819e95205Sopenharmony_ci  part_name = "bluetooth_service"
39919e95205Sopenharmony_ci}
400