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("//build/ohos_var.gni") 1619e95205Sopenharmony_ci 1719e95205Sopenharmony_ciSUBSYSTEM_DIR = "//foundation/communication" 1819e95205Sopenharmony_ciPART_DIR = "$SUBSYSTEM_DIR/bluetooth_service/services/bluetooth" 1919e95205Sopenharmony_ci 2019e95205Sopenharmony_ciPlatformSrc = [ 2119e95205Sopenharmony_ci "platform/src/alarm.c", 2219e95205Sopenharmony_ci "platform/src/allocator.c", 2319e95205Sopenharmony_ci "platform/src/buffer.c", 2419e95205Sopenharmony_ci "platform/src/event.c", 2519e95205Sopenharmony_ci "platform/src/list.c", 2619e95205Sopenharmony_ci "platform/src/module.c", 2719e95205Sopenharmony_ci "platform/src/mutex.c", 2819e95205Sopenharmony_ci "platform/src/packet.c", 2919e95205Sopenharmony_ci "platform/src/queue.c", 3019e95205Sopenharmony_ci "platform/src/random.c", 3119e95205Sopenharmony_ci "platform/src/reactor.c", 3219e95205Sopenharmony_ci "platform/src/semaphore.c", 3319e95205Sopenharmony_ci "platform/src/thread.c", 3419e95205Sopenharmony_ci] 3519e95205Sopenharmony_ci 3619e95205Sopenharmony_ciStackAttSrc = [ 3719e95205Sopenharmony_ci "src/att/att_common.c", 3819e95205Sopenharmony_ci "src/att/att_connect.c", 3919e95205Sopenharmony_ci "src/att/att_init.c", 4019e95205Sopenharmony_ci "src/att/att_receive.c", 4119e95205Sopenharmony_ci "src/att/att_send_request.c", 4219e95205Sopenharmony_ci "src/att/att_send_response.c", 4319e95205Sopenharmony_ci] 4419e95205Sopenharmony_ci 4519e95205Sopenharmony_ciStackAvctpSrc = [ 4619e95205Sopenharmony_ci "src/avctp/avctp_api.c", 4719e95205Sopenharmony_ci "src/avctp/avctp_br_act.c", 4819e95205Sopenharmony_ci "src/avctp/avctp_br_l2cap.c", 4919e95205Sopenharmony_ci "src/avctp/avctp_br.c", 5019e95205Sopenharmony_ci "src/avctp/avctp_conn.c", 5119e95205Sopenharmony_ci "src/avctp/avctp_ctrl_act.c", 5219e95205Sopenharmony_ci "src/avctp/avctp_ctrl_l2cap.c", 5319e95205Sopenharmony_ci "src/avctp/avctp_ctrl.c", 5419e95205Sopenharmony_ci "src/avctp/avctp_dev.c", 5519e95205Sopenharmony_ci "src/avctp/avctp_gap.c", 5619e95205Sopenharmony_ci "src/avctp/avctp_st.c", 5719e95205Sopenharmony_ci "src/avctp/avctp.c", 5819e95205Sopenharmony_ci] 5919e95205Sopenharmony_ci 6019e95205Sopenharmony_ciStackAvdtpSrc = [ 6119e95205Sopenharmony_ci "src/avdtp/avdtp_api.c", 6219e95205Sopenharmony_ci "src/avdtp/avdtp_ctrl.c", 6319e95205Sopenharmony_ci "src/avdtp/avdtp_impl.c", 6419e95205Sopenharmony_ci "src/avdtp/avdtp_l2cap.c", 6519e95205Sopenharmony_ci "src/avdtp/avdtp_message.c", 6619e95205Sopenharmony_ci "src/avdtp/avdtp.c", 6719e95205Sopenharmony_ci] 6819e95205Sopenharmony_ci 6919e95205Sopenharmony_ciStackBtmSrc = [ 7019e95205Sopenharmony_ci "src/btm/btm_acl.c", 7119e95205Sopenharmony_ci "src/btm/btm_controller.c", 7219e95205Sopenharmony_ci "src/btm/btm_inq_db.c", 7319e95205Sopenharmony_ci "src/btm/btm_interop.c", 7419e95205Sopenharmony_ci "src/btm/btm_le_sec.c", 7519e95205Sopenharmony_ci "src/btm/btm_pm.c", 7619e95205Sopenharmony_ci "src/btm/btm_sco_def.c", 7719e95205Sopenharmony_ci "src/btm/btm_sco.c", 7819e95205Sopenharmony_ci "src/btm/btm_snoop_filter_acl.c", 7919e95205Sopenharmony_ci "src/btm/btm_snoop_filter_cmd.c", 8019e95205Sopenharmony_ci "src/btm/btm_snoop_filter_evt.c", 8119e95205Sopenharmony_ci "src/btm/btm_snoop_filter.c", 8219e95205Sopenharmony_ci "src/btm/btm_snoop.c", 8319e95205Sopenharmony_ci "src/btm/btm_thread.c", 8419e95205Sopenharmony_ci "src/btm/btm_wl.c", 8519e95205Sopenharmony_ci "src/btm/btm.c", 8619e95205Sopenharmony_ci] 8719e95205Sopenharmony_ci 8819e95205Sopenharmony_ciStackGapSrc = [ 8919e95205Sopenharmony_ci "src/gap/gap.c", 9019e95205Sopenharmony_ci "src/gap/gap_br_discover.c", 9119e95205Sopenharmony_ci "src/gap/gap_br_sec.c", 9219e95205Sopenharmony_ci "src/gap/gap_le_adv.c", 9319e95205Sopenharmony_ci "src/gap/gap_le_scan.c", 9419e95205Sopenharmony_ci "src/gap/gap_le_conn.c", 9519e95205Sopenharmony_ci "src/gap/gap_le_sec.c", 9619e95205Sopenharmony_ci "src/gap/gap_btm_receive.c", 9719e95205Sopenharmony_ci "src/gap/gap_hci_receive.c", 9819e95205Sopenharmony_ci "src/gap/gap_if.c", 9919e95205Sopenharmony_ci "src/gap/gap_l2cap_receive.c", 10019e95205Sopenharmony_ci "src/gap/gap_le_if.c", 10119e95205Sopenharmony_ci "src/gap/gap_sm_receive.c", 10219e95205Sopenharmony_ci "src/gap/gap_task_common.c", 10319e95205Sopenharmony_ci] 10419e95205Sopenharmony_ci 10519e95205Sopenharmony_ciStackHciSrc = [ 10619e95205Sopenharmony_ci "src/hci/hdi_wrapper.c", 10719e95205Sopenharmony_ci "src/hci/acl/hci_acl.c", 10819e95205Sopenharmony_ci "src/hci/hci.c", 10919e95205Sopenharmony_ci "src/hci/cmd/hci_cmd.c", 11019e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_controller_baseband.c", 11119e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure.c", 11219e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_controller_baseband.c", 11319e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_info_params.c", 11419e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_le_controller.c", 11519e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_link_ctrl.c", 11619e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_link_policy.c", 11719e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_failure_status_params.c", 11819e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_info_params.c", 11919e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_le_controller.c", 12019e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_link_ctrl.c", 12119e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_link_policy.c", 12219e95205Sopenharmony_ci "src/hci/cmd/hci_cmd_status_params.c", 12319e95205Sopenharmony_ci "src/hci/evt/hci_evt.c", 12419e95205Sopenharmony_ci "src/hci/evt/hci_evt_cmd_complete.c", 12519e95205Sopenharmony_ci "src/hci/evt/hci_evt_controller_baseband_cmd_complete.c", 12619e95205Sopenharmony_ci "src/hci/evt/hci_evt_info_params_cmd_complete.c", 12719e95205Sopenharmony_ci "src/hci/evt/hci_evt_link_ctrl_cmd_complete.c", 12819e95205Sopenharmony_ci "src/hci/evt/hci_evt_link_policy_cmd_complete.c", 12919e95205Sopenharmony_ci "src/hci/evt/hci_evt_status_params_cmd_complete.c", 13019e95205Sopenharmony_ci "src/hci/evt/hci_evt_le.c", 13119e95205Sopenharmony_ci "src/hci/evt/hci_evt_le_cmd_complete.c", 13219e95205Sopenharmony_ci "src/hci/hci_failure.c", 13319e95205Sopenharmony_ci "src/hci/hci_vendor_if.c", 13419e95205Sopenharmony_ci] 13519e95205Sopenharmony_ci 13619e95205Sopenharmony_ciStackL2capSrc = [ 13719e95205Sopenharmony_ci "src/l2cap/l2cap_cmn.c", 13819e95205Sopenharmony_ci "src/l2cap/l2cap_crc.c", 13919e95205Sopenharmony_ci "src/l2cap/l2cap_le.c", 14019e95205Sopenharmony_ci "src/l2cap/l2cap_inst.c", 14119e95205Sopenharmony_ci "src/l2cap/l2cap_core.c", 14219e95205Sopenharmony_ci "src/l2cap/l2cap.c", 14319e95205Sopenharmony_ci "src/l2cap/l2cap_if.c", 14419e95205Sopenharmony_ci "src/l2cap/l2cap_le_if.c", 14519e95205Sopenharmony_ci] 14619e95205Sopenharmony_ci 14719e95205Sopenharmony_ciStackRfcommSrc = [ 14819e95205Sopenharmony_ci "src/rfcomm/rfcomm_api.c", 14919e95205Sopenharmony_ci "src/rfcomm/rfcomm_channel_fsm.c", 15019e95205Sopenharmony_ci "src/rfcomm/rfcomm_channel.c", 15119e95205Sopenharmony_ci "src/rfcomm/rfcomm_frames.c", 15219e95205Sopenharmony_ci "src/rfcomm/rfcomm_gap_if.c", 15319e95205Sopenharmony_ci "src/rfcomm/rfcomm_gap.c", 15419e95205Sopenharmony_ci "src/rfcomm/rfcomm_l2cap_if.c", 15519e95205Sopenharmony_ci "src/rfcomm/rfcomm_l2cap.c", 15619e95205Sopenharmony_ci "src/rfcomm/rfcomm_server.c", 15719e95205Sopenharmony_ci "src/rfcomm/rfcomm_session_fsm.c", 15819e95205Sopenharmony_ci "src/rfcomm/rfcomm_session.c", 15919e95205Sopenharmony_ci "src/rfcomm/rfcomm.c", 16019e95205Sopenharmony_ci] 16119e95205Sopenharmony_ci 16219e95205Sopenharmony_ciStackSdpSrc = [ 16319e95205Sopenharmony_ci "src/sdp/sdp_client_parse.c", 16419e95205Sopenharmony_ci "src/sdp/sdp_client.c", 16519e95205Sopenharmony_ci "src/sdp/sdp_connect.c", 16619e95205Sopenharmony_ci "src/sdp/sdp_server.c", 16719e95205Sopenharmony_ci "src/sdp/sdp_util.c", 16819e95205Sopenharmony_ci "src/sdp/sdp.c", 16919e95205Sopenharmony_ci] 17019e95205Sopenharmony_ci 17119e95205Sopenharmony_ciStackSmpSrc = [ 17219e95205Sopenharmony_ci "src/smp/smp_aes_encryption.c", 17319e95205Sopenharmony_ci "src/smp/smp_cmd.c", 17419e95205Sopenharmony_ci "src/smp/smp_hci_event.c", 17519e95205Sopenharmony_ci "src/smp/smp_legacy.c", 17619e95205Sopenharmony_ci "src/smp/smp_oob.c", 17719e95205Sopenharmony_ci "src/smp/smp_privacy.c", 17819e95205Sopenharmony_ci "src/smp/smp_receive.c", 17919e95205Sopenharmony_ci "src/smp/smp_sc_accepter.c", 18019e95205Sopenharmony_ci "src/smp/smp_sc_initiator.c", 18119e95205Sopenharmony_ci "src/smp/smp_send.c", 18219e95205Sopenharmony_ci "src/smp/smp_tool.c", 18319e95205Sopenharmony_ci "src/smp/smp.c", 18419e95205Sopenharmony_ci] 18519e95205Sopenharmony_ci 18619e95205Sopenharmony_ciconfig("btstack_public_config") { 18719e95205Sopenharmony_ci include_dirs = [ "include" ] 18819e95205Sopenharmony_ci} 18919e95205Sopenharmony_ci 19019e95205Sopenharmony_ciconfig("btstack_config") { 19119e95205Sopenharmony_ci include_dirs = [ 19219e95205Sopenharmony_ci "./", 19319e95205Sopenharmony_ci "src", 19419e95205Sopenharmony_ci "platform/include", 19519e95205Sopenharmony_ci "$PART_DIR/common", 19619e95205Sopenharmony_ci "$PART_DIR/hardware/include", 19719e95205Sopenharmony_ci ] 19819e95205Sopenharmony_ci 19919e95205Sopenharmony_ci cflags = [ 20019e95205Sopenharmony_ci "-fPIC", 20119e95205Sopenharmony_ci "-Wno-unused-parameter", 20219e95205Sopenharmony_ci "-Wpointer-arith", 20319e95205Sopenharmony_ci "-Wmissing-field-initializers", 20419e95205Sopenharmony_ci "-Wno-missing-braces", #wait-for-fix 20519e95205Sopenharmony_ci "-Wno-pragma-pack", 20619e95205Sopenharmony_ci ] 20719e95205Sopenharmony_ci 20819e95205Sopenharmony_ci defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] 20919e95205Sopenharmony_ci} 21019e95205Sopenharmony_ci 21119e95205Sopenharmony_ciohos_shared_library("btstack") { 21219e95205Sopenharmony_ci # sanitize = { 21319e95205Sopenharmony_ci # cfi = true 21419e95205Sopenharmony_ci # blocklist = "./btstack_blocklist.txt" 21519e95205Sopenharmony_ci # } 21619e95205Sopenharmony_ci stack_protector_ret = true 21719e95205Sopenharmony_ci configs = [ ":btstack_config" ] 21819e95205Sopenharmony_ci public_configs = [ ":btstack_public_config" ] 21919e95205Sopenharmony_ci 22019e95205Sopenharmony_ci sources = PlatformSrc + StackAttSrc + StackAvctpSrc + StackAvdtpSrc + 22119e95205Sopenharmony_ci StackBtmSrc + StackGapSrc + StackHciSrc + StackL2capSrc + 22219e95205Sopenharmony_ci StackRfcommSrc + StackSdpSrc + StackSmpSrc 22319e95205Sopenharmony_ci 22419e95205Sopenharmony_ci deps = [ 22519e95205Sopenharmony_ci "$PART_DIR/external:btdummy", 22619e95205Sopenharmony_ci "$PART_DIR/hardware:bluetooth_hdi_adapter", 22719e95205Sopenharmony_ci "//third_party/bounds_checking_function:libsec_shared", 22819e95205Sopenharmony_ci "//third_party/openssl:libcrypto_shared", 22919e95205Sopenharmony_ci ] 23019e95205Sopenharmony_ci 23119e95205Sopenharmony_ci external_deps = [ 23219e95205Sopenharmony_ci "bluetooth:btcommon", 23319e95205Sopenharmony_ci "hilog:libhilog", 23419e95205Sopenharmony_ci ] 23519e95205Sopenharmony_ci 23619e95205Sopenharmony_ci subsystem_name = "communication" 23719e95205Sopenharmony_ci part_name = "bluetooth_service" 23819e95205Sopenharmony_ci} 239