This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit dda21ad57ea620cb63f8d526e7cdb363520f35c6 Author: raiden00pl <[email protected]> AuthorDate: Wed Jul 19 10:39:37 2023 +0200 cmake: support for nimble --- .../btsak => examples/nimble}/CMakeLists.txt | 25 +-- wireless/bluetooth/btsak/CMakeLists.txt | 2 +- wireless/bluetooth/nimble/CMakeLists.txt | 199 +++++++++++++++++++++ 3 files changed, 205 insertions(+), 21 deletions(-) diff --git a/wireless/bluetooth/btsak/CMakeLists.txt b/examples/nimble/CMakeLists.txt similarity index 69% copy from wireless/bluetooth/btsak/CMakeLists.txt copy to examples/nimble/CMakeLists.txt index d392e6346..c89267726 100644 --- a/wireless/bluetooth/btsak/CMakeLists.txt +++ b/examples/nimble/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# apps/examples/usrsocktest/CMakeLists.txt +# apps/examples/nimble/CMakeLists.txt # # Licensed to the Apache Software Foundation (ASF) under one or more contributor # license agreements. See the NOTICE file distributed with this work for @@ -18,24 +18,9 @@ # # ############################################################################## -if(CONFIG_BTSAK) - - # Application info - +if(CONFIG_EXAMPLES_NIMBLE) nuttx_add_application( - NAME - ${CONFIG_BTSAK_PROGNAME} - SRCS - btsak_main.c - STACKSIZE - ${CONFIG_BTSAK_STACKSIZE} - PRIORITY - ${CONFIG_BTSAK_PRIORITY}) - - # Bluetooth SAK (swiss army knife) - - set(CSRCS btsak_advertise.c btsak_features.c btsak_gatt.c btsak_info.c - btsak_scan.c btsak_security.c) - - target_sources(apps PRIVATE ${CSRCS}) + NAME nimble + SRCS ${CMAKE_CURRENT_LIST_DIR}/nimble_main.c + DEPENDS nimble) endif() diff --git a/wireless/bluetooth/btsak/CMakeLists.txt b/wireless/bluetooth/btsak/CMakeLists.txt index d392e6346..ee599fc02 100644 --- a/wireless/bluetooth/btsak/CMakeLists.txt +++ b/wireless/bluetooth/btsak/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# apps/examples/usrsocktest/CMakeLists.txt +# apps/wireless/bluetooth/btsak/CMakeLists.txt # # Licensed to the Apache Software Foundation (ASF) under one or more contributor # license agreements. See the NOTICE file distributed with this work for diff --git a/wireless/bluetooth/nimble/CMakeLists.txt b/wireless/bluetooth/nimble/CMakeLists.txt new file mode 100644 index 000000000..86c370da0 --- /dev/null +++ b/wireless/bluetooth/nimble/CMakeLists.txt @@ -0,0 +1,199 @@ +# ############################################################################## +# apps/wireless/bluetooth/nimble/CMakeLists.txt +# +# Licensed to the Apache Software Foundation (ASF) under one or more contributor +# license agreements. See the NOTICE file distributed with this work for +# additional information regarding copyright ownership. The ASF licenses this +# file to you 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. +# +# ############################################################################## + +if(CONFIG_NIMBLE) + nuttx_add_library(nimble) + + if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/mynewt-nimble) + FetchContent_Declare( + mynewt-nimble + DOWNLOAD_NAME "${CONFIG_NIMBLE_REF}.tar.gz" + DOWNLOAD_DIR ${CMAKE_CURRENT_LIST_DIR} + URL "https://github.com/apache/mynewt-nimble/archive/${CONFIG_NIMBLE_REF}.tar.gz" + SOURCE_DIR + ${CMAKE_CURRENT_LIST_DIR}/mynewt-nimble + BINARY_DIR + ${CMAKE_BINARY_DIR}/apps/wireless/bluetooth/nimble/mynewt-nimble + CONFIGURE_COMMAND + "" + BUILD_COMMAND + "" + INSTALL_COMMAND + "" + TEST_COMMAND + "" + DOWNLOAD_NO_PROGRESS true + TIMEOUT 30) + + FetchContent_GetProperties(mynewt-nimble) + + if(NOT mynewt-nimble_POPULATED) + FetchContent_Populate(mynewt-nimble) + endif() + endif() + + set(SRCS_PORTING + mynewt-nimble/porting/nimble/src/endian.c + mynewt-nimble/porting/nimble/src/mem.c + mynewt-nimble/porting/nimble/src/nimble_port.c + mynewt-nimble/porting/nimble/src/os_mbuf.c + mynewt-nimble/porting/nimble/src/os_mempool.c + mynewt-nimble/porting/nimble/src/os_msys_init.c) + + set(SRCS_NPL + mynewt-nimble/porting/npl/nuttx/src/os_atomic.c + mynewt-nimble/porting/npl/nuttx/src/os_callout.c + mynewt-nimble/porting/npl/nuttx/src/os_eventq.c + mynewt-nimble/porting/npl/nuttx/src/os_mutex.c + mynewt-nimble/porting/npl/nuttx/src/os_sem.c + mynewt-nimble/porting/npl/nuttx/src/os_task.c + mynewt-nimble/porting/npl/nuttx/src/os_time.c) + + set(SRCS_TRANSPORT + mynewt-nimble/nimble/transport/socket/src/ble_hci_socket.c + mynewt-nimble/nimble/transport/src/monitor.c + mynewt-nimble/nimble/transport/src/transport.c) + + set(SRCS_SERVICES + mynewt-nimble/nimble/host/services/ans/src/ble_svc_ans.c + mynewt-nimble/nimble/host/services/bas/src/ble_svc_bas.c + mynewt-nimble/nimble/host/services/dis/src/ble_svc_dis.c + mynewt-nimble/nimble/host/services/gap/src/ble_svc_gap.c + mynewt-nimble/nimble/host/services/gatt/src/ble_svc_gatt.c + mynewt-nimble/nimble/host/services/ias/src/ble_svc_ias.c + mynewt-nimble/nimble/host/services/ipss/src/ble_svc_ipss.c + mynewt-nimble/nimble/host/services/lls/src/ble_svc_lls.c + mynewt-nimble/nimble/host/services/tps/src/ble_svc_tps.c) + + set(SRCS_HOST + mynewt-nimble/nimble/host/src/ble_att.c + mynewt-nimble/nimble/host/src/ble_att_clt.c + mynewt-nimble/nimble/host/src/ble_att_cmd.c + mynewt-nimble/nimble/host/src/ble_att_svr.c + mynewt-nimble/nimble/host/src/ble_dtm.c + mynewt-nimble/nimble/host/src/ble_eddystone.c + mynewt-nimble/nimble/host/src/ble_gap.c + mynewt-nimble/nimble/host/src/ble_gattc.c + mynewt-nimble/nimble/host/src/ble_gatts.c + mynewt-nimble/nimble/host/src/ble_gatts_lcl.c + mynewt-nimble/nimble/host/src/ble_hs_adv.c + mynewt-nimble/nimble/host/src/ble_hs_atomic.c + mynewt-nimble/nimble/host/src/ble_hs.c + mynewt-nimble/nimble/host/src/ble_hs_cfg.c + mynewt-nimble/nimble/host/src/ble_hs_conn.c + mynewt-nimble/nimble/host/src/ble_hs_flow.c + mynewt-nimble/nimble/host/src/ble_hs_hci.c + mynewt-nimble/nimble/host/src/ble_hs_hci_cmd.c + mynewt-nimble/nimble/host/src/ble_hs_hci_evt.c + mynewt-nimble/nimble/host/src/ble_hs_hci_util.c + mynewt-nimble/nimble/host/src/ble_hs_id.c + mynewt-nimble/nimble/host/src/ble_hs_log.c + mynewt-nimble/nimble/host/src/ble_hs_mbuf.c + mynewt-nimble/nimble/host/src/ble_hs_misc.c + mynewt-nimble/nimble/host/src/ble_hs_mqueue.c + mynewt-nimble/nimble/host/src/ble_hs_periodic_sync.c + mynewt-nimble/nimble/host/src/ble_hs_pvcy.c + mynewt-nimble/nimble/host/src/ble_hs_shutdown.c + mynewt-nimble/nimble/host/src/ble_hs_startup.c + mynewt-nimble/nimble/host/src/ble_hs_stop.c + mynewt-nimble/nimble/host/src/ble_ibeacon.c + mynewt-nimble/nimble/host/src/ble_l2cap.c + mynewt-nimble/nimble/host/src/ble_l2cap_coc.c + mynewt-nimble/nimble/host/src/ble_l2cap_sig.c + mynewt-nimble/nimble/host/src/ble_l2cap_sig_cmd.c + mynewt-nimble/nimble/host/src/ble_sm_alg.c + mynewt-nimble/nimble/host/src/ble_sm.c + mynewt-nimble/nimble/host/src/ble_sm_cmd.c + mynewt-nimble/nimble/host/src/ble_sm_lgcy.c + mynewt-nimble/nimble/host/src/ble_sm_sc.c + mynewt-nimble/nimble/host/src/ble_store.c + mynewt-nimble/nimble/host/src/ble_store_util.c + mynewt-nimble/nimble/host/src/ble_uuid.c + mynewt-nimble/nimble/host/util/src/addr.c + mynewt-nimble/nimble/host/store/ram/src/ble_store_ram.c) + + set(SRCS ${SRCS_PORTING} ${SRCS_NPL} ${SRCS_TRANSPORT} ${SRCS_SERVICES} + ${SRCS_HOST}) + + if(CONFIG_NIMBLE_TINYCRYPT) + list( + APPEND + SRCS + mynewt-nimble/ext/tinycrypt/src/aes_decrypt.c + mynewt-nimble/ext/tinycrypt/src/aes_encrypt.c + mynewt-nimble/ext/tinycrypt/src/cbc_mode.c + mynewt-nimble/ext/tinycrypt/src/ccm_mode.c + mynewt-nimble/ext/tinycrypt/src/cmac_mode.c + mynewt-nimble/ext/tinycrypt/src/ctr_mode.c + mynewt-nimble/ext/tinycrypt/src/ctr_prng.c + mynewt-nimble/ext/tinycrypt/src/ecc.c + mynewt-nimble/ext/tinycrypt/src/ecc_dh.c + mynewt-nimble/ext/tinycrypt/src/ecc_dsa.c + mynewt-nimble/ext/tinycrypt/src/ecc_platform_specific.c + mynewt-nimble/ext/tinycrypt/src/hmac.c + mynewt-nimble/ext/tinycrypt/src/hmac_prng.c + mynewt-nimble/ext/tinycrypt/src/sha256.c + mynewt-nimble/ext/tinycrypt/src/utils.c) + target_include_directories(nimble + PRIVATE mynewt-nimble/ext/tinycrypt/include) + endif() + + if(CONFIG_NIMBLE_MESH) + # TODO + list( + APPEND + SRCS + mynewt-nimble/nimble/host/mesh/src/access.c + mynewt-nimble/nimble/host/mesh/src/adv.c + mynewt-nimble/nimble/host/mesh/src/adv_ext.c + mynewt-nimble/nimble/host/mesh/src/adv_legacy.c + mynewt-nimble/nimble/host/mesh/src/aes-ccm.c + mynewt-nimble/nimble/host/mesh/src/app_keys.c) + target_include_directories(nimble + PUBLIC mynewt-nimble/nimble/host/mesh/include) + endif() + + set(INCLUDES + mynewt-nimble/nimble/include + mynewt-nimble/nimble/host/include + mynewt-nimble/nimble/host/util/include + mynewt-nimble/nimble/host/services/ans/include + mynewt-nimble/nimble/host/services/bas/include + mynewt-nimble/nimble/host/services/dis/include + mynewt-nimble/nimble/host/services/gap/include + mynewt-nimble/nimble/host/services/gatt/include + mynewt-nimble/nimble/host/services/ias/include + mynewt-nimble/nimble/host/services/ipss/include + mynewt-nimble/nimble/host/services/lls/include + mynewt-nimble/nimble/host/services/tps/include + mynewt-nimble/nimble/host/store/ram/include + mynewt-nimble/nimble/transport/include + mynewt-nimble/porting/nimble/include) + + target_include_directories( + nimble PUBLIC mynewt-nimble/porting/npl/nuttx/include + mynewt-nimble/nimble/transport/socket/include) + + target_include_directories(nimble PUBLIC include ${INCLUDES}) + + target_compile_options(nimble PUBLIC -Wno-pointer-to-int-cast -Wno-undef + -Wno-format) + target_sources(nimble PRIVATE ${SRCS}) +endif()
