1if(CONFIG_BT_ENABLED)
2
3    set(srcs "")
4    set(include_dirs "")
5    set(ldscripts "linker_common.lf")
6    if(CONFIG_BT_CONTROLLER_ENABLED)
7        if(CONFIG_IDF_TARGET_ESP32)
8            list(APPEND srcs "controller/esp32/bt.c"
9                             "controller/esp32/hli_api.c"
10                             "controller/esp32/hli_vectors.S")
11            list(APPEND include_dirs include/esp32/include)
12            list(APPEND ldscripts "linker_rw_bt_controller.lf")
13
14        elseif(CONFIG_IDF_TARGET_ESP32C3)
15            list(APPEND srcs "controller/esp32c3/bt.c")
16            list(APPEND include_dirs include/esp32c3/include)
17            list(APPEND ldscripts "linker_rw_bt_controller.lf")
18
19        elseif(CONFIG_IDF_TARGET_ESP32S3)
20            list(APPEND srcs "controller/esp32c3/bt.c")
21            list(APPEND include_dirs include/esp32c3/include)
22            list(APPEND ldscripts "linker_rw_bt_controller.lf")
23
24        elseif(CONFIG_IDF_TARGET_ESP32C2)
25            list(APPEND srcs "controller/esp32c2/bt.c")
26            list(APPEND include_dirs include/esp32c2/include)
27            if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
28                list(APPEND srcs "controller/esp32c2/dummy.c")
29            endif()
30            set(ldscripts "linker_esp32c2.lf")
31
32        elseif(CONFIG_IDF_TARGET_ESP32C6)
33            list(APPEND srcs "controller/esp32c6/bt.c")
34            list(APPEND include_dirs include/esp32c6/include)
35            list(APPEND ldscripts "linker_esp_ble_controller.lf")
36
37        elseif(CONFIG_IDF_TARGET_ESP32H2)
38            list(APPEND srcs "controller/esp32h2/bt.c")
39            list(APPEND include_dirs include/esp32h2/include)
40            list(APPEND ldscripts "linker_esp_ble_controller.lf")
41
42        endif()
43
44    endif()
45
46
47    # Common
48    list(APPEND include_dirs common/osi/include)
49
50    list(APPEND priv_include_dirs
51            common/btc/include
52            common/include
53            porting/mem/
54            porting/include
55        )
56    list(APPEND include_dirs
57         common/api/include/api
58         common/btc/profile/esp/blufi/include
59         common/btc/profile/esp/include
60         common/hci_log/include
61        )
62
63
64    list(APPEND srcs "common/btc/core/btc_alarm.c"
65         "common/api/esp_blufi_api.c"
66         "common/hci_log/bt_hci_log.c"
67         "common/btc/core/btc_manage.c"
68         "common/btc/core/btc_task.c"
69         "common/btc/profile/esp/blufi/blufi_prf.c"
70         "common/btc/profile/esp/blufi/blufi_protocol.c"
71         "common/osi/alarm.c"
72         "common/osi/allocator.c"
73         "common/osi/buffer.c"
74         "common/osi/config.c"
75         "common/osi/fixed_queue.c"
76         "common/osi/pkt_queue.c"
77         "common/osi/fixed_pkt_queue.c"
78         "common/osi/future.c"
79         "common/osi/hash_functions.c"
80         "common/osi/hash_map.c"
81         "common/osi/list.c"
82         "common/osi/mutex.c"
83         "common/osi/thread.c"
84         "common/osi/osi.c"
85         "common/osi/semaphore.c"
86         "porting/mem/bt_osi_mem.c"
87         )
88
89    # Host Bluedroid
90    if(CONFIG_BT_BLUEDROID_ENABLED)
91
92        list(APPEND priv_include_dirs
93            host/bluedroid/bta/include
94            host/bluedroid/bta/ar/include
95            host/bluedroid/bta/av/include
96            host/bluedroid/bta/dm/include
97            host/bluedroid/bta/gatt/include
98            host/bluedroid/bta/hf_ag/include
99            host/bluedroid/bta/hf_client/include
100            host/bluedroid/bta/hd/include
101            host/bluedroid/bta/hh/include
102            host/bluedroid/bta/jv/include
103            host/bluedroid/bta/sdp/include
104            host/bluedroid/bta/sys/include
105            host/bluedroid/device/include
106            host/bluedroid/hci/include
107            host/bluedroid/external/sbc/decoder/include
108            host/bluedroid/external/sbc/encoder/include
109            host/bluedroid/external/sbc/plc/include
110            host/bluedroid/btc/profile/esp/include
111            host/bluedroid/btc/profile/std/a2dp/include
112            host/bluedroid/btc/profile/std/include
113            host/bluedroid/btc/include
114            host/bluedroid/stack/btm/include
115            host/bluedroid/stack/gap/include
116            host/bluedroid/stack/gatt/include
117            host/bluedroid/stack/hid/include
118            host/bluedroid/stack/l2cap/include
119            host/bluedroid/stack/sdp/include
120            host/bluedroid/stack/smp/include
121            host/bluedroid/stack/avct/include
122            host/bluedroid/stack/avrc/include
123            host/bluedroid/stack/avdt/include
124            host/bluedroid/stack/a2dp/include
125            host/bluedroid/stack/rfcomm/include
126            host/bluedroid/stack/include
127            host/bluedroid/common/include)
128
129        list(APPEND include_dirs host/bluedroid/api/include/api)
130
131        list(APPEND srcs "host/bluedroid/api/esp_a2dp_api.c"
132                   "host/bluedroid/api/esp_avrc_api.c"
133                   "host/bluedroid/api/esp_bt_device.c"
134                   "host/bluedroid/api/esp_bt_main.c"
135                   "host/bluedroid/api/esp_gap_ble_api.c"
136                   "host/bluedroid/api/esp_gap_bt_api.c"
137                   "host/bluedroid/api/esp_gatt_common_api.c"
138                   "host/bluedroid/api/esp_gattc_api.c"
139                   "host/bluedroid/api/esp_gatts_api.c"
140                   "host/bluedroid/api/esp_hidd_api.c"
141                   "host/bluedroid/api/esp_hidh_api.c"
142                   "host/bluedroid/api/esp_hf_ag_api.c"
143                   "host/bluedroid/api/esp_hf_client_api.c"
144                   "host/bluedroid/api/esp_spp_api.c"
145                   "host/bluedroid/api/esp_sdp_api.c"
146                   "host/bluedroid/api/esp_l2cap_bt_api.c"
147                   "host/bluedroid/bta/ar/bta_ar.c"
148                   "host/bluedroid/bta/av/bta_av_aact.c"
149                   "host/bluedroid/bta/av/bta_av_act.c"
150                   "host/bluedroid/bta/av/bta_av_api.c"
151                   "host/bluedroid/bta/av/bta_av_cfg.c"
152                   "host/bluedroid/bta/av/bta_av_ci.c"
153                   "host/bluedroid/bta/av/bta_av_main.c"
154                   "host/bluedroid/bta/av/bta_av_sbc.c"
155                   "host/bluedroid/bta/av/bta_av_ssm.c"
156                   "host/bluedroid/bta/dm/bta_dm_act.c"
157                   "host/bluedroid/bta/dm/bta_dm_api.c"
158                   "host/bluedroid/bta/dm/bta_dm_cfg.c"
159                   "host/bluedroid/bta/dm/bta_dm_ci.c"
160                   "host/bluedroid/bta/dm/bta_dm_co.c"
161                   "host/bluedroid/bta/dm/bta_dm_main.c"
162                   "host/bluedroid/bta/dm/bta_dm_pm.c"
163                   "host/bluedroid/bta/dm/bta_dm_sco.c"
164                   "host/bluedroid/bta/dm/bta_dm_qos.c"
165                   "host/bluedroid/bta/gatt/bta_gatt_common.c"
166                   "host/bluedroid/bta/gatt/bta_gattc_act.c"
167                   "host/bluedroid/bta/gatt/bta_gattc_api.c"
168                   "host/bluedroid/bta/gatt/bta_gattc_cache.c"
169                   "host/bluedroid/bta/gatt/bta_gattc_ci.c"
170                   "host/bluedroid/bta/gatt/bta_gattc_co.c"
171                   "host/bluedroid/bta/gatt/bta_gattc_main.c"
172                   "host/bluedroid/bta/gatt/bta_gattc_utils.c"
173                   "host/bluedroid/bta/gatt/bta_gatts_act.c"
174                   "host/bluedroid/bta/gatt/bta_gatts_api.c"
175                   "host/bluedroid/bta/gatt/bta_gatts_co.c"
176                   "host/bluedroid/bta/gatt/bta_gatts_main.c"
177                   "host/bluedroid/bta/gatt/bta_gatts_utils.c"
178                   "host/bluedroid/bta/hd/bta_hd_api.c"
179                   "host/bluedroid/bta/hd/bta_hd_act.c"
180                   "host/bluedroid/bta/hd/bta_hd_main.c"
181                   "host/bluedroid/bta/hh/bta_hh_act.c"
182                   "host/bluedroid/bta/hh/bta_hh_api.c"
183                   "host/bluedroid/bta/hh/bta_hh_cfg.c"
184                   "host/bluedroid/bta/hh/bta_hh_le.c"
185                   "host/bluedroid/bta/hh/bta_hh_main.c"
186                   "host/bluedroid/bta/hh/bta_hh_utils.c"
187                   "host/bluedroid/bta/jv/bta_jv_act.c"
188                   "host/bluedroid/bta/jv/bta_jv_api.c"
189                   "host/bluedroid/bta/jv/bta_jv_cfg.c"
190                   "host/bluedroid/bta/jv/bta_jv_main.c"
191                   "host/bluedroid/bta/hf_ag/bta_ag_act.c"
192                   "host/bluedroid/bta/hf_ag/bta_ag_api.c"
193                   "host/bluedroid/bta/hf_ag/bta_ag_at.c"
194                   "host/bluedroid/bta/hf_ag/bta_ag_cfg.c"
195                   "host/bluedroid/bta/hf_ag/bta_ag_cmd.c"
196                   "host/bluedroid/bta/hf_ag/bta_ag_main.c"
197                   "host/bluedroid/bta/hf_ag/bta_ag_rfc.c"
198                   "host/bluedroid/bta/hf_ag/bta_ag_sco.c"
199                   "host/bluedroid/bta/hf_ag/bta_ag_sdp.c"
200                   "host/bluedroid/bta/hf_client/bta_hf_client_act.c"
201                   "host/bluedroid/bta/hf_client/bta_hf_client_api.c"
202                   "host/bluedroid/bta/hf_client/bta_hf_client_at.c"
203                   "host/bluedroid/bta/hf_client/bta_hf_client_cmd.c"
204                   "host/bluedroid/bta/hf_client/bta_hf_client_main.c"
205                   "host/bluedroid/bta/hf_client/bta_hf_client_rfc.c"
206                   "host/bluedroid/bta/hf_client/bta_hf_client_sco.c"
207                   "host/bluedroid/bta/hf_client/bta_hf_client_sdp.c"
208                   "host/bluedroid/bta/sdp/bta_sdp.c"
209                   "host/bluedroid/bta/sdp/bta_sdp_act.c"
210                   "host/bluedroid/bta/sdp/bta_sdp_api.c"
211                   "host/bluedroid/bta/sdp/bta_sdp_cfg.c"
212                   "host/bluedroid/bta/sys/bta_sys_conn.c"
213                   "host/bluedroid/bta/sys/bta_sys_main.c"
214                   "host/bluedroid/bta/sys/utl.c"
215                   "host/bluedroid/btc/core/btc_ble_storage.c"
216                   "host/bluedroid/btc/core/btc_config.c"
217                   "host/bluedroid/btc/core/btc_dev.c"
218                   "host/bluedroid/btc/core/btc_dm.c"
219                   "host/bluedroid/btc/core/btc_main.c"
220                   "host/bluedroid/btc/core/btc_profile_queue.c"
221                   "host/bluedroid/btc/core/btc_sec.c"
222                   "host/bluedroid/btc/core/btc_sm.c"
223                   "host/bluedroid/btc/core/btc_storage.c"
224                   "host/bluedroid/btc/core/btc_util.c"
225                   "host/bluedroid/btc/profile/std/a2dp/bta_av_co.c"
226                   "host/bluedroid/btc/profile/std/a2dp/btc_a2dp.c"
227                   "host/bluedroid/btc/profile/std/a2dp/btc_a2dp_control.c"
228                   "host/bluedroid/btc/profile/std/a2dp/btc_a2dp_sink.c"
229                   "host/bluedroid/btc/profile/std/a2dp/btc_a2dp_source.c"
230                   "host/bluedroid/btc/profile/std/a2dp/btc_av.c"
231                   "host/bluedroid/btc/profile/std/avrc/btc_avrc.c"
232                   "host/bluedroid/btc/profile/std/avrc/bta_avrc_co.c"
233                   "host/bluedroid/btc/profile/std/hf_ag/bta_ag_co.c"
234                   "host/bluedroid/btc/profile/std/hf_ag/btc_hf_ag.c"
235                   "host/bluedroid/btc/profile/std/hf_client/btc_hf_client.c"
236                   "host/bluedroid/btc/profile/std/hf_client/bta_hf_client_co.c"
237                   "host/bluedroid/btc/profile/std/hid/btc_hd.c"
238                   "host/bluedroid/btc/profile/std/hid/btc_hh.c"
239                   "host/bluedroid/btc/profile/std/hid/bta_hh_co.c"
240                   "host/bluedroid/btc/profile/std/gap/btc_gap_ble.c"
241                   "host/bluedroid/btc/profile/std/gap/btc_gap_bt.c"
242                   "host/bluedroid/btc/profile/std/gap/bta_gap_bt_co.c"
243                   "host/bluedroid/btc/profile/std/gatt/btc_gatt_common.c"
244                   "host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c"
245                   "host/bluedroid/btc/profile/std/gatt/btc_gattc.c"
246                   "host/bluedroid/btc/profile/std/gatt/btc_gatts.c"
247                   "host/bluedroid/btc/profile/std/spp/btc_spp.c"
248                   "host/bluedroid/btc/profile/std/sdp/btc_sdp.c"
249                   "host/bluedroid/btc/profile/std/l2cap/btc_l2cap.c"
250                   "host/bluedroid/device/bdaddr.c"
251                   "host/bluedroid/device/controller.c"
252                   "host/bluedroid/device/interop.c"
253                   "host/bluedroid/external/sbc/decoder/srce/alloc.c"
254                   "host/bluedroid/external/sbc/decoder/srce/bitalloc-sbc.c"
255                   "host/bluedroid/external/sbc/decoder/srce/bitalloc.c"
256                   "host/bluedroid/external/sbc/decoder/srce/bitstream-decode.c"
257                   "host/bluedroid/external/sbc/decoder/srce/decoder-oina.c"
258                   "host/bluedroid/external/sbc/decoder/srce/decoder-private.c"
259                   "host/bluedroid/external/sbc/decoder/srce/decoder-sbc.c"
260                   "host/bluedroid/external/sbc/decoder/srce/dequant.c"
261                   "host/bluedroid/external/sbc/decoder/srce/framing-sbc.c"
262                   "host/bluedroid/external/sbc/decoder/srce/framing.c"
263                   "host/bluedroid/external/sbc/decoder/srce/oi_codec_version.c"
264                   "host/bluedroid/external/sbc/decoder/srce/synthesis-8-generated.c"
265                   "host/bluedroid/external/sbc/decoder/srce/synthesis-dct8.c"
266                   "host/bluedroid/external/sbc/decoder/srce/synthesis-sbc.c"
267                   "host/bluedroid/external/sbc/encoder/srce/sbc_analysis.c"
268                   "host/bluedroid/external/sbc/encoder/srce/sbc_dct.c"
269                   "host/bluedroid/external/sbc/encoder/srce/sbc_dct_coeffs.c"
270                   "host/bluedroid/external/sbc/encoder/srce/sbc_enc_bit_alloc_mono.c"
271                   "host/bluedroid/external/sbc/encoder/srce/sbc_enc_bit_alloc_ste.c"
272                   "host/bluedroid/external/sbc/encoder/srce/sbc_enc_coeffs.c"
273                   "host/bluedroid/external/sbc/encoder/srce/sbc_encoder.c"
274                   "host/bluedroid/external/sbc/encoder/srce/sbc_packing.c"
275                   "host/bluedroid/external/sbc/plc/sbc_plc.c"
276                   "host/bluedroid/hci/hci_audio.c"
277                   "host/bluedroid/hci/hci_hal_h4.c"
278                   "host/bluedroid/hci/hci_layer.c"
279                   "host/bluedroid/hci/hci_packet_factory.c"
280                   "host/bluedroid/hci/hci_packet_parser.c"
281                   "host/bluedroid/hci/packet_fragmenter.c"
282                   "host/bluedroid/main/bte_init.c"
283                   "host/bluedroid/main/bte_main.c"
284                   "host/bluedroid/stack/a2dp/a2d_api.c"
285                   "host/bluedroid/stack/a2dp/a2d_sbc.c"
286                   "host/bluedroid/stack/avct/avct_api.c"
287                   "host/bluedroid/stack/avct/avct_ccb.c"
288                   "host/bluedroid/stack/avct/avct_l2c.c"
289                   "host/bluedroid/stack/avct/avct_lcb.c"
290                   "host/bluedroid/stack/avct/avct_lcb_act.c"
291                   "host/bluedroid/stack/avdt/avdt_ad.c"
292                   "host/bluedroid/stack/avdt/avdt_api.c"
293                   "host/bluedroid/stack/avdt/avdt_ccb.c"
294                   "host/bluedroid/stack/avdt/avdt_ccb_act.c"
295                   "host/bluedroid/stack/avdt/avdt_l2c.c"
296                   "host/bluedroid/stack/avdt/avdt_msg.c"
297                   "host/bluedroid/stack/avdt/avdt_scb.c"
298                   "host/bluedroid/stack/avdt/avdt_scb_act.c"
299                   "host/bluedroid/stack/avrc/avrc_api.c"
300                   "host/bluedroid/stack/avrc/avrc_bld_ct.c"
301                   "host/bluedroid/stack/avrc/avrc_bld_tg.c"
302                   "host/bluedroid/stack/avrc/avrc_opt.c"
303                   "host/bluedroid/stack/avrc/avrc_pars_ct.c"
304                   "host/bluedroid/stack/avrc/avrc_pars_tg.c"
305                   "host/bluedroid/stack/avrc/avrc_sdp.c"
306                   "host/bluedroid/stack/avrc/avrc_utils.c"
307                   "host/bluedroid/stack/hid/hidd_api.c"
308                   "host/bluedroid/stack/hid/hidd_conn.c"
309                   "host/bluedroid/stack/hid/hidh_api.c"
310                   "host/bluedroid/stack/hid/hidh_conn.c"
311                   "host/bluedroid/stack/btm/btm_acl.c"
312                   "host/bluedroid/stack/btm/btm_ble.c"
313                   "host/bluedroid/stack/btm/btm_ble_addr.c"
314                   "host/bluedroid/stack/btm/btm_ble_adv_filter.c"
315                   "host/bluedroid/stack/btm/btm_ble_batchscan.c"
316                   "host/bluedroid/stack/btm/btm_ble_bgconn.c"
317                   "host/bluedroid/stack/btm/btm_ble_cont_energy.c"
318                   "host/bluedroid/stack/btm/btm_ble_gap.c"
319                   "host/bluedroid/stack/btm/btm_ble_5_gap.c"
320                   "host/bluedroid/stack/btm/btm_ble_multi_adv.c"
321                   "host/bluedroid/stack/btm/btm_ble_privacy.c"
322                   "host/bluedroid/stack/btm/btm_dev.c"
323                   "host/bluedroid/stack/btm/btm_devctl.c"
324                   "host/bluedroid/stack/btm/btm_inq.c"
325                   "host/bluedroid/stack/btm/btm_main.c"
326                   "host/bluedroid/stack/btm/btm_pm.c"
327                   "host/bluedroid/stack/btm/btm_sco.c"
328                   "host/bluedroid/stack/btm/btm_sec.c"
329                   "host/bluedroid/stack/btu/btu_hcif.c"
330                   "host/bluedroid/stack/btu/btu_init.c"
331                   "host/bluedroid/stack/btu/btu_task.c"
332                   "host/bluedroid/stack/gap/gap_api.c"
333                   "host/bluedroid/stack/gap/gap_ble.c"
334                   "host/bluedroid/stack/gap/gap_conn.c"
335                   "host/bluedroid/stack/gap/gap_utils.c"
336                   "host/bluedroid/stack/gatt/att_protocol.c"
337                   "host/bluedroid/stack/gatt/gatt_api.c"
338                   "host/bluedroid/stack/gatt/gatt_attr.c"
339                   "host/bluedroid/stack/gatt/gatt_auth.c"
340                   "host/bluedroid/stack/gatt/gatt_cl.c"
341                   "host/bluedroid/stack/gatt/gatt_db.c"
342                   "host/bluedroid/stack/gatt/gatt_main.c"
343                   "host/bluedroid/stack/gatt/gatt_sr.c"
344                   "host/bluedroid/stack/gatt/gatt_sr_hash.c"
345                   "host/bluedroid/stack/gatt/gatt_utils.c"
346                   "host/bluedroid/stack/hcic/hciblecmds.c"
347                   "host/bluedroid/stack/hcic/hcicmds.c"
348                   "host/bluedroid/stack/l2cap/l2c_api.c"
349                   "host/bluedroid/stack/l2cap/l2c_ble.c"
350                   "host/bluedroid/stack/l2cap/l2c_csm.c"
351                   "host/bluedroid/stack/l2cap/l2c_fcr.c"
352                   "host/bluedroid/stack/l2cap/l2c_link.c"
353                   "host/bluedroid/stack/l2cap/l2c_main.c"
354                   "host/bluedroid/stack/l2cap/l2c_ucd.c"
355                   "host/bluedroid/stack/l2cap/l2c_utils.c"
356                   "host/bluedroid/stack/l2cap/l2cap_client.c"
357                   "host/bluedroid/stack/rfcomm/port_api.c"
358                   "host/bluedroid/stack/rfcomm/port_rfc.c"
359                   "host/bluedroid/stack/rfcomm/port_utils.c"
360                   "host/bluedroid/stack/rfcomm/rfc_l2cap_if.c"
361                   "host/bluedroid/stack/rfcomm/rfc_mx_fsm.c"
362                   "host/bluedroid/stack/rfcomm/rfc_port_fsm.c"
363                   "host/bluedroid/stack/rfcomm/rfc_port_if.c"
364                   "host/bluedroid/stack/rfcomm/rfc_ts_frames.c"
365                   "host/bluedroid/stack/rfcomm/rfc_utils.c"
366                   "host/bluedroid/stack/sdp/sdp_api.c"
367                   "host/bluedroid/stack/sdp/sdp_db.c"
368                   "host/bluedroid/stack/sdp/sdp_discovery.c"
369                   "host/bluedroid/stack/sdp/sdp_main.c"
370                   "host/bluedroid/stack/sdp/sdp_server.c"
371                   "host/bluedroid/stack/sdp/sdp_utils.c"
372                   "host/bluedroid/stack/smp/aes.c"
373                   "host/bluedroid/stack/smp/p_256_curvepara.c"
374                   "host/bluedroid/stack/smp/p_256_ecc_pp.c"
375                   "host/bluedroid/stack/smp/p_256_multprecision.c"
376                   "host/bluedroid/stack/smp/smp_act.c"
377                   "host/bluedroid/stack/smp/smp_api.c"
378                   "host/bluedroid/stack/smp/smp_br_main.c"
379                   "host/bluedroid/stack/smp/smp_cmac.c"
380                   "host/bluedroid/stack/smp/smp_keys.c"
381                   "host/bluedroid/stack/smp/smp_l2c.c"
382                   "host/bluedroid/stack/smp/smp_main.c"
383                   "host/bluedroid/stack/smp/smp_utils.c")
384
385
386        list(APPEND srcs "common/btc/profile/esp/blufi/bluedroid_host/esp_blufi.c")
387
388        if(CONFIG_BLE_MESH)
389            list(APPEND srcs "esp_ble_mesh/mesh_core/bluedroid_host/mesh_bearer_adapt.c")
390        endif()
391
392    endif()
393
394    if(CONFIG_BLE_MESH)
395        list(APPEND include_dirs
396                    "esp_ble_mesh/mesh_common/include"
397                    "esp_ble_mesh/mesh_common/tinycrypt/include"
398                    "esp_ble_mesh/mesh_core"
399                    "esp_ble_mesh/mesh_core/include"
400                    "esp_ble_mesh/mesh_core/storage"
401                    "esp_ble_mesh/btc/include"
402                    "esp_ble_mesh/mesh_models/common/include"
403                    "esp_ble_mesh/mesh_models/client/include"
404                    "esp_ble_mesh/mesh_models/server/include"
405                    "esp_ble_mesh/api/core/include"
406                    "esp_ble_mesh/api/models/include"
407                    "esp_ble_mesh/api")
408
409        list(APPEND srcs "esp_ble_mesh/api/core/esp_ble_mesh_ble_api.c"
410                    "esp_ble_mesh/api/core/esp_ble_mesh_common_api.c"
411                    "esp_ble_mesh/api/core/esp_ble_mesh_local_data_operation_api.c"
412                    "esp_ble_mesh/api/core/esp_ble_mesh_low_power_api.c"
413                    "esp_ble_mesh/api/core/esp_ble_mesh_networking_api.c"
414                    "esp_ble_mesh/api/core/esp_ble_mesh_provisioning_api.c"
415                    "esp_ble_mesh/api/core/esp_ble_mesh_proxy_api.c"
416                    "esp_ble_mesh/api/models/esp_ble_mesh_config_model_api.c"
417                    "esp_ble_mesh/api/models/esp_ble_mesh_generic_model_api.c"
418                    "esp_ble_mesh/api/models/esp_ble_mesh_health_model_api.c"
419                    "esp_ble_mesh/api/models/esp_ble_mesh_lighting_model_api.c"
420                    "esp_ble_mesh/api/models/esp_ble_mesh_sensor_model_api.c"
421                    "esp_ble_mesh/api/models/esp_ble_mesh_time_scene_model_api.c"
422                    "esp_ble_mesh/btc/btc_ble_mesh_ble.c"
423                    "esp_ble_mesh/btc/btc_ble_mesh_config_model.c"
424                    "esp_ble_mesh/btc/btc_ble_mesh_generic_model.c"
425                    "esp_ble_mesh/btc/btc_ble_mesh_health_model.c"
426                    "esp_ble_mesh/btc/btc_ble_mesh_lighting_model.c"
427                    "esp_ble_mesh/btc/btc_ble_mesh_prov.c"
428                    "esp_ble_mesh/btc/btc_ble_mesh_sensor_model.c"
429                    "esp_ble_mesh/btc/btc_ble_mesh_time_scene_model.c"
430                    "esp_ble_mesh/mesh_common/tinycrypt/src/aes_decrypt.c"
431                    "esp_ble_mesh/mesh_common/tinycrypt/src/aes_encrypt.c"
432                    "esp_ble_mesh/mesh_common/tinycrypt/src/cbc_mode.c"
433                    "esp_ble_mesh/mesh_common/tinycrypt/src/ccm_mode.c"
434                    "esp_ble_mesh/mesh_common/tinycrypt/src/cmac_mode.c"
435                    "esp_ble_mesh/mesh_common/tinycrypt/src/ctr_mode.c"
436                    "esp_ble_mesh/mesh_common/tinycrypt/src/ctr_prng.c"
437                    "esp_ble_mesh/mesh_common/tinycrypt/src/ecc_dh.c"
438                    "esp_ble_mesh/mesh_common/tinycrypt/src/ecc_dsa.c"
439                    "esp_ble_mesh/mesh_common/tinycrypt/src/ecc_platform_specific.c"
440                    "esp_ble_mesh/mesh_common/tinycrypt/src/ecc.c"
441                    "esp_ble_mesh/mesh_common/tinycrypt/src/hmac_prng.c"
442                    "esp_ble_mesh/mesh_common/tinycrypt/src/hmac.c"
443                    "esp_ble_mesh/mesh_common/tinycrypt/src/sha256.c"
444                    "esp_ble_mesh/mesh_common/tinycrypt/src/utils.c"
445                    "esp_ble_mesh/mesh_common/mesh_atomic.c"
446                    "esp_ble_mesh/mesh_common/mesh_buf.c"
447                    "esp_ble_mesh/mesh_common/mesh_common.c"
448                    "esp_ble_mesh/mesh_common/mesh_kernel.c"
449                    "esp_ble_mesh/mesh_common/mesh_mutex.c"
450                    "esp_ble_mesh/mesh_common/mesh_timer.c"
451                    "esp_ble_mesh/mesh_common/mesh_util.c"
452                    "esp_ble_mesh/mesh_core/storage/settings_nvs.c"
453                    "esp_ble_mesh/mesh_core/access.c"
454                    "esp_ble_mesh/mesh_core/adv.c"
455                    "esp_ble_mesh/mesh_core/beacon.c"
456                    "esp_ble_mesh/mesh_core/cfg_cli.c"
457                    "esp_ble_mesh/mesh_core/cfg_srv.c"
458                    "esp_ble_mesh/mesh_core/crypto.c"
459                    "esp_ble_mesh/mesh_core/fast_prov.c"
460                    "esp_ble_mesh/mesh_core/friend.c"
461                    "esp_ble_mesh/mesh_core/health_cli.c"
462                    "esp_ble_mesh/mesh_core/health_srv.c"
463                    "esp_ble_mesh/mesh_core/local_operation.c"
464                    "esp_ble_mesh/mesh_core/lpn.c"
465                    "esp_ble_mesh/mesh_core/main.c"
466                    "esp_ble_mesh/mesh_core/net.c"
467                    "esp_ble_mesh/mesh_core/prov.c"
468                    "esp_ble_mesh/mesh_core/provisioner_main.c"
469                    "esp_ble_mesh/mesh_core/provisioner_prov.c"
470                    "esp_ble_mesh/mesh_core/proxy_client.c"
471                    "esp_ble_mesh/mesh_core/proxy_server.c"
472                    "esp_ble_mesh/mesh_core/settings_uid.c"
473                    "esp_ble_mesh/mesh_core/settings.c"
474                    "esp_ble_mesh/mesh_core/scan.c"
475                    "esp_ble_mesh/mesh_core/test.c"
476                    "esp_ble_mesh/mesh_core/transport.c"
477                    "esp_ble_mesh/mesh_models/common/device_property.c"
478                    "esp_ble_mesh/mesh_models/client/client_common.c"
479                    "esp_ble_mesh/mesh_models/client/generic_client.c"
480                    "esp_ble_mesh/mesh_models/client/lighting_client.c"
481                    "esp_ble_mesh/mesh_models/client/sensor_client.c"
482                    "esp_ble_mesh/mesh_models/client/time_scene_client.c"
483                    "esp_ble_mesh/mesh_models/server/generic_server.c"
484                    "esp_ble_mesh/mesh_models/server/lighting_server.c"
485                    "esp_ble_mesh/mesh_models/server/sensor_server.c"
486                    "esp_ble_mesh/mesh_models/server/server_common.c"
487                    "esp_ble_mesh/mesh_models/server/state_binding.c"
488                    "esp_ble_mesh/mesh_models/server/state_transition.c"
489                    "esp_ble_mesh/mesh_models/server/time_scene_server.c")
490    endif()
491
492
493
494    if(CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT)
495        list(APPEND srcs
496                "porting/npl/freertos/src/npl_os_freertos.c"
497                "porting/mem/os_msys_init.c"
498                "porting/transport/src/hci_transport.c"
499        )
500
501        if(CONFIG_BT_CONTROLLER_DISABLED)
502            list(APPEND srcs
503                "host/nimble/nimble/porting/nimble/src/hal_uart.c"
504            )
505        elseif(CONFIG_BT_LE_HCI_INTERFACE_USE_RAM)
506            if(CONFIG_BT_NIMBLE_ENABLED)
507                list(APPEND srcs
508                    "porting/transport/driver/vhci/hci_driver_nimble.c"
509                    "host/nimble/nimble/nimble/transport/esp_ipc/src/hci_esp_ipc.c"
510                )
511            else()
512                list(APPEND srcs
513                    "porting/transport/driver/vhci/hci_driver_standard.c"
514                )
515            endif()
516        elseif(CONFIG_BT_LE_HCI_INTERFACE_USE_UART)
517                list(APPEND srcs
518                    "porting/transport/driver/common/hci_driver_util.c"
519                    "porting/transport/driver/common/hci_driver_h4.c"
520                    "porting/transport/driver/common/hci_driver_mem.c"
521                    "porting/transport/driver/uart/hci_driver_uart_config.c"
522                )
523            if(CONFIG_BT_LE_UART_HCI_DMA_MODE)
524                list(APPEND srcs
525                    "porting/transport/driver/uart/hci_driver_uart_dma.c"
526                )
527            else()
528                list(APPEND srcs
529                    "porting/transport/driver/uart/hci_driver_uart.c"
530                )
531            endif()
532        endif()
533
534        list(APPEND include_dirs
535                porting/include
536                porting/npl/freertos/include
537                porting/transport/include
538        )
539    endif()
540
541    if(NOT (CONFIG_BT_LE_CRYPTO_STACK_MBEDTLS OR CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS))
542        list(APPEND include_dirs
543                porting/ext/tinycrypt/include
544            )
545        list(APPEND srcs "porting/ext/tinycrypt/src/utils.c"
546                "porting/ext/tinycrypt/src/sha256.c"
547                "porting/ext/tinycrypt/src/ecc.c"
548                "porting/ext/tinycrypt/src/ctr_prng.c"
549                "porting/ext/tinycrypt/src/ctr_mode.c"
550                "porting/ext/tinycrypt/src/aes_decrypt.c"
551                "porting/ext/tinycrypt/src/aes_encrypt.c"
552                "porting/ext/tinycrypt/src/ccm_mode.c"
553                "porting/ext/tinycrypt/src/ecc_dsa.c"
554                "porting/ext/tinycrypt/src/cmac_mode.c"
555                "porting/ext/tinycrypt/src/ecc_dh.c"
556                "porting/ext/tinycrypt/src/hmac_prng.c"
557                "porting/ext/tinycrypt/src/ecc_platform_specific.c"
558                "porting/ext/tinycrypt/src/hmac.c"
559                "porting/ext/tinycrypt/src/cbc_mode.c")
560    endif()
561
562    if(CONFIG_BT_NIMBLE_ENABLED)
563
564        list(APPEND include_dirs
565                    host/nimble/nimble/nimble/host/include
566                    host/nimble/nimble/nimble/include
567                    host/nimble/nimble/nimble/host/services/ans/include
568                    host/nimble/nimble/nimble/host/services/bas/include
569                    host/nimble/nimble/nimble/host/services/dis/include
570                    host/nimble/nimble/nimble/host/services/gap/include
571                    host/nimble/nimble/nimble/host/services/gatt/include
572                    host/nimble/nimble/nimble/host/services/hr/include
573                    host/nimble/nimble/nimble/host/services/htp/include
574                    host/nimble/nimble/nimble/host/services/ias/include
575                    host/nimble/nimble/nimble/host/services/ipss/include
576                    host/nimble/nimble/nimble/host/services/lls/include
577                    host/nimble/nimble/nimble/host/services/prox/include
578                    host/nimble/nimble/nimble/host/services/cts/include
579                    host/nimble/nimble/nimble/host/services/tps/include
580                    host/nimble/nimble/nimble/host/services/hid/include
581                    host/nimble/nimble/nimble/host/services/sps/include
582                    host/nimble/nimble/nimble/host/util/include
583                    host/nimble/nimble/nimble/host/store/ram/include
584                    host/nimble/nimble/nimble/host/store/config/include
585                    )
586
587        list(APPEND srcs "host/nimble/nimble/nimble/transport/src/transport.c"
588                    "host/nimble/nimble/nimble/host/util/src/addr.c"
589                    "host/nimble/nimble/nimble/host/services/gatt/src/ble_svc_gatt.c"
590                    "host/nimble/nimble/nimble/host/services/tps/src/ble_svc_tps.c"
591                    "host/nimble/nimble/nimble/host/services/ias/src/ble_svc_ias.c"
592                    "host/nimble/nimble/nimble/host/services/ipss/src/ble_svc_ipss.c"
593                    "host/nimble/nimble/nimble/host/services/ans/src/ble_svc_ans.c"
594                    "host/nimble/nimble/nimble/host/services/hr/src/ble_svc_hr.c"
595                    "host/nimble/nimble/nimble/host/services/htp/src/ble_svc_htp.c"
596                    "host/nimble/nimble/nimble/host/services/gap/src/ble_svc_gap.c"
597                    "host/nimble/nimble/nimble/host/services/bas/src/ble_svc_bas.c"
598                    "host/nimble/nimble/nimble/host/services/dis/src/ble_svc_dis.c"
599                    "host/nimble/nimble/nimble/host/services/lls/src/ble_svc_lls.c"
600                    "host/nimble/nimble/nimble/host/services/prox/src/ble_svc_prox.c"
601                    "host/nimble/nimble/nimble/host/services/cts/src/ble_svc_cts.c"
602                    "host/nimble/nimble/nimble/host/services/hid/src/ble_svc_hid.c"
603                    "host/nimble/nimble/nimble/host/services/sps/src/ble_svc_sps.c"
604                    "host/nimble/nimble/nimble/host/src/ble_hs_conn.c"
605                    "host/nimble/nimble/nimble/host/src/ble_store_util.c"
606                    "host/nimble/nimble/nimble/host/src/ble_sm.c"
607                    "host/nimble/nimble/nimble/host/src/ble_hs_shutdown.c"
608                    "host/nimble/nimble/nimble/host/src/ble_l2cap_sig_cmd.c"
609                    "host/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c"
610                    "host/nimble/nimble/nimble/host/src/ble_hs_id.c"
611                    "host/nimble/nimble/nimble/host/src/ble_att_svr.c"
612                    "host/nimble/nimble/nimble/host/src/ble_gatts_lcl.c"
613                    "host/nimble/nimble/nimble/host/src/ble_ibeacon.c"
614                    "host/nimble/nimble/nimble/host/src/ble_hs_atomic.c"
615                    "host/nimble/nimble/nimble/host/src/ble_sm_alg.c"
616                    "host/nimble/nimble/nimble/host/src/ble_hs_stop.c"
617                    "host/nimble/nimble/nimble/host/src/ble_hs.c"
618                    "host/nimble/nimble/nimble/host/src/ble_hs_hci_evt.c"
619                    "host/nimble/nimble/nimble/host/src/ble_hs_mqueue.c"
620                    "host/nimble/nimble/nimble/host/src/ble_hs_periodic_sync.c"
621                    "host/nimble/nimble/nimble/host/src/ble_att.c"
622                    "host/nimble/nimble/nimble/host/src/ble_ead.c"
623                    "host/nimble/nimble/nimble/host/src/ble_aes_ccm.c"
624                    "host/nimble/nimble/nimble/host/src/ble_gattc.c"
625                    "host/nimble/nimble/nimble/host/src/ble_store.c"
626                    "host/nimble/nimble/nimble/host/src/ble_sm_lgcy.c"
627                    "host/nimble/nimble/nimble/host/src/ble_hs_cfg.c"
628                    "host/nimble/nimble/nimble/host/src/ble_att_clt.c"
629                    "host/nimble/nimble/nimble/host/src/ble_l2cap_coc.c"
630                    "host/nimble/nimble/nimble/host/src/ble_hs_mbuf.c"
631                    "host/nimble/nimble/nimble/host/src/ble_att_cmd.c"
632                    "host/nimble/nimble/nimble/host/src/ble_hs_log.c"
633                    "host/nimble/nimble/nimble/host/src/ble_eddystone.c"
634                    "host/nimble/nimble/nimble/host/src/ble_hs_startup.c"
635                    "host/nimble/nimble/nimble/host/src/ble_l2cap_sig.c"
636                    "host/nimble/nimble/nimble/host/src/ble_gap.c"
637                    "host/nimble/nimble/nimble/host/src/ble_sm_cmd.c"
638                    "host/nimble/nimble/nimble/host/src/ble_uuid.c"
639                    "host/nimble/nimble/nimble/host/src/ble_hs_pvcy.c"
640                    "host/nimble/nimble/nimble/host/src/ble_hs_flow.c"
641                    "host/nimble/nimble/nimble/host/src/ble_l2cap.c"
642                    "host/nimble/nimble/nimble/host/src/ble_sm_sc.c"
643                    "host/nimble/nimble/nimble/host/src/ble_hs_misc.c"
644                    "host/nimble/nimble/nimble/host/src/ble_gatts.c"
645                    "host/nimble/nimble/nimble/host/src/ble_hs_adv.c"
646                    "host/nimble/nimble/nimble/host/src/ble_hs_hci.c"
647                    "host/nimble/nimble/nimble/host/src/ble_hs_hci_util.c"
648                    "host/nimble/nimble/nimble/host/src/ble_hs_resolv.c"
649                    "host/nimble/nimble/nimble/host/store/ram/src/ble_store_ram.c"
650                    "host/nimble/nimble/nimble/host/store/config/src/ble_store_config.c"
651                    "host/nimble/nimble/nimble/host/store/config/src/ble_store_nvs.c"
652                    "host/nimble/nimble/nimble/host/src/ble_gattc_cache.c"
653                    "host/nimble/nimble/nimble/host/src/ble_gattc_cache_conn.c"
654                    "host/nimble/nimble/nimble/host/src/ble_eatt.c"
655                )
656
657            if(CONFIG_BT_CONTROLLER_DISABLED AND CONFIG_BT_NIMBLE_TRANSPORT_UART)
658                list(APPEND srcs
659                        "host/nimble/nimble/nimble/transport/uart_ll/src/hci_uart.c"
660                        "host/nimble/nimble/nimble/transport/common/hci_h4/src/hci_h4.c"
661                )
662            endif()
663
664            list(APPEND srcs
665                "host/nimble/nimble/porting/nimble/src/nimble_port.c"
666                "host/nimble/nimble/porting/npl/freertos/src/nimble_port_freertos.c"
667                "host/nimble/port/src/nvs_port.c"
668            )
669
670            list(APPEND include_dirs
671                host/nimble/nimble/porting/nimble/include
672                host/nimble/port/include
673                host/nimble/nimble/nimble/transport/include
674                host/nimble/nimble/nimble/include
675            )
676
677            if(CONFIG_BT_CONTROLLER_DISABLED)
678                list(APPEND include_dirs
679                    host/nimble/nimble/nimble/transport/common/hci_h4/include
680                )
681            endif()
682
683        if(NOT CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT)
684            list(APPEND srcs
685                    "host/nimble/nimble/porting/nimble/src/endian.c"
686                    "host/nimble/nimble/porting/nimble/src/os_mempool.c"
687                    "host/nimble/nimble/porting/nimble/src/mem.c"
688                    "host/nimble/nimble/porting/nimble/src/os_mbuf.c"
689                    "host/nimble/nimble/porting/nimble/src/os_msys_init.c"
690                    "host/nimble/nimble/porting/npl/freertos/src/npl_os_freertos.c"
691                    )
692
693            if(CONFIG_BT_CONTROLLER_DISABLED AND CONFIG_BT_NIMBLE_TRANSPORT_UART)
694                list(APPEND srcs
695                    "host/nimble/nimble/porting/nimble/src/hal_uart.c"
696                )
697            endif()
698
699            list(APPEND include_dirs
700                    porting/include
701                    host/nimble/nimble/porting/npl/freertos/include
702            )
703        endif()
704
705        if(CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE AND CONFIG_BT_CONTROLLER_ENABLED)
706            list(APPEND srcs
707                "host/nimble/esp-hci/src/esp_nimble_hci.c"
708                "host/nimble/nimble/nimble/transport/esp_ipc_legacy/src/hci_esp_ipc_legacy.c"
709            )
710            list(APPEND include_dirs
711                host/nimble/esp-hci/include
712            )
713        endif()
714
715        list(APPEND srcs
716                    "common/btc/profile/esp/blufi/nimble_host/esp_blufi.c")
717
718        if(CONFIG_BLE_MESH)
719            list(APPEND srcs "esp_ble_mesh/mesh_core/nimble_host/mesh_bearer_adapt.c")
720        endif()
721
722        if(CONFIG_BT_NIMBLE_MESH)
723
724            list(APPEND include_dirs
725                host/nimble/nimble/nimble/host/mesh/include
726                host/nimble/nimble/nimble/host/include/host)
727
728            list(APPEND srcs "host/nimble/nimble/nimble/host/mesh/src/shell.c"
729                        "host/nimble/nimble/nimble/host/mesh/src/friend.c"
730                        "host/nimble/nimble/nimble/host/mesh/src/crypto.c"
731                        "host/nimble/nimble/nimble/host/mesh/src/settings.c"
732                        "host/nimble/nimble/nimble/host/mesh/src/adv.c"
733                        "host/nimble/nimble/nimble/host/mesh/src/adv_ext.c"
734                        "host/nimble/nimble/nimble/host/mesh/src/adv_legacy.c"
735                        "host/nimble/nimble/nimble/host/mesh/src/model_srv.c"
736                        "host/nimble/nimble/nimble/host/mesh/src/msg.c"
737                        "host/nimble/nimble/nimble/host/mesh/src/beacon.c"
738                        "host/nimble/nimble/nimble/host/mesh/src/glue.c"
739                        "host/nimble/nimble/nimble/host/mesh/src/model_cli.c"
740                        "host/nimble/nimble/nimble/host/mesh/src/transport.c"
741                        "host/nimble/nimble/nimble/host/mesh/src/prov.c"
742                        "host/nimble/nimble/nimble/host/mesh/src/mesh.c"
743                        "host/nimble/nimble/nimble/host/mesh/src/access.c"
744                        "host/nimble/nimble/nimble/host/mesh/src/cfg_srv.c"
745                        "host/nimble/nimble/nimble/host/mesh/src/cfg_cli.c"
746                        "host/nimble/nimble/nimble/host/mesh/src/light_model.c"
747                        "host/nimble/nimble/nimble/host/mesh/src/health_cli.c"
748                        "host/nimble/nimble/nimble/host/mesh/src/lpn.c"
749                        "host/nimble/nimble/nimble/host/mesh/src/health_srv.c"
750                        "host/nimble/nimble/nimble/host/mesh/src/testing.c"
751                        "host/nimble/nimble/nimble/host/mesh/src/aes-ccm.c"
752                        "host/nimble/nimble/nimble/host/mesh/src/app_keys.c"
753                        "host/nimble/nimble/nimble/host/mesh/src/cdb.c"
754                        "host/nimble/nimble/nimble/host/mesh/src/cfg.c"
755                        "host/nimble/nimble/nimble/host/mesh/src/pb_adv.c"
756                        "host/nimble/nimble/nimble/host/mesh/src/pb_gatt.c"
757                        "host/nimble/nimble/nimble/host/mesh/src/pb_gatt_srv.c"
758                        "host/nimble/nimble/nimble/host/mesh/src/prov_device.c"
759                        "host/nimble/nimble/nimble/host/mesh/src/provisioner.c"
760                        "host/nimble/nimble/nimble/host/mesh/src/heartbeat.c"
761                        "host/nimble/nimble/nimble/host/mesh/src/rpl.c"
762                        "host/nimble/nimble/nimble/host/mesh/src/subnet.c"
763                        "host/nimble/nimble/nimble/host/mesh/src/proxy_msg.c"
764                        "host/nimble/nimble/nimble/host/mesh/src/proxy_srv.c"
765                        "host/nimble/nimble/nimble/host/mesh/src/net.c")
766        endif()
767    endif()
768
769endif()
770
771idf_component_register(SRCS "${srcs}"
772                       INCLUDE_DIRS "${include_dirs}"
773                       PRIV_INCLUDE_DIRS "${priv_include_dirs}"
774                       REQUIRES esp_timer esp_wifi
775                       PRIV_REQUIRES nvs_flash soc esp_pm esp_phy esp_coex mbedtls driver vfs
776                       LDFRAGMENTS "${ldscripts}")
777
778if(CONFIG_BT_ENABLED)
779    target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable)
780    if(CONFIG_IDF_TARGET_ESP32)
781        target_link_directories(${COMPONENT_LIB} INTERFACE "${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32/esp32")
782        target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
783
784        target_link_libraries(${COMPONENT_LIB} INTERFACE "-u ld_include_hli_vectors_bt")
785    elseif(CONFIG_IDF_TARGET_ESP32C3)
786        target_link_directories(${COMPONENT_LIB} INTERFACE
787                "${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32c3")
788        if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
789            target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app_flash)
790        else()
791            target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
792        endif()
793    elseif(CONFIG_IDF_TARGET_ESP32S3)
794        target_link_directories(${COMPONENT_LIB} INTERFACE
795                "${CMAKE_CURRENT_LIST_DIR}/controller/lib_esp32c3_family/esp32s3")
796        if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
797            target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app_flash)
798        else()
799            target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app)
800        endif()
801    elseif(CONFIG_BT_CONTROLLER_ENABLED)
802        if(CONFIG_IDF_TARGET_ESP32C6)
803            add_prebuilt_library(libble_app "controller/lib_${target}/${target}-bt-lib/esp32c6/libble_app.a")
804        else()
805            if(CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY)
806                add_prebuilt_library(libble_app "controller/lib_${target}/${target}-bt-lib/libble_app_flash.a")
807            else()
808                add_prebuilt_library(libble_app "controller/lib_${target}/${target}-bt-lib/libble_app.a")
809            endif()
810        endif()
811        target_link_libraries(${COMPONENT_LIB} PRIVATE libble_app)
812    endif()
813
814    set_source_files_properties(
815        "host/bluedroid/bta/gatt/bta_gattc_act.c"
816        "host/bluedroid/bta/gatt/bta_gattc_cache.c"
817        "host/bluedroid/btc/profile/std/gatt/btc_gatt_util.c"
818        "host/bluedroid/btc/profile/std/gatt/btc_gatts.c"
819        PROPERTIES COMPILE_FLAGS -Wno-address-of-packed-member)
820
821    target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
822endif()
823
824if(CONFIG_BT_NIMBLE_MESH)
825    set_source_files_properties("host/nimble/nimble/nimble/host/mesh/src/net.c"
826        PROPERTIES COMPILE_FLAGS -Wno-type-limits)
827endif()
828
829if(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE AND CONFIG_BT_NIMBLE_ENABLED)
830    # some variables in NimBLE are only used by asserts
831    target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-unused-but-set-variable -Wno-unused-variable)
832endif()
833
834if(NOT CMAKE_BUILD_EARLY_EXPANSION)
835    set(jump_table_opts "-fjump-tables")
836    if(NOT (CMAKE_C_COMPILER_ID MATCHES "Clang") )
837        set(jump_table_opts "${jump_table_opts} -ftree-switch-conversion")
838    endif()
839    set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/host/bluedroid/bta/hf_ag/bta_ag_cmd.c"
840                                "${CMAKE_CURRENT_LIST_DIR}/host/bluedroid/btc/profile/std/gap/btc_gap_ble.c"
841                                PROPERTIES COMPILE_FLAGS "${jump_table_opts}")
842endif()
843