Fix compilation when using CMake.

* Update readme to include note about compiling with Arduino component.
This commit is contained in:
h2zero 2021-01-15 19:56:06 -07:00
parent 26ab9760da
commit a4e085f71a
2 changed files with 55 additions and 23 deletions

View file

@ -4,26 +4,53 @@ cmake_minimum_required(VERSION 3.5)
set(SUPPORTED_TARGETS esp32) set(SUPPORTED_TARGETS esp32)
idf_component_register(SRCS "src/FreeRTOS.cpp" set(COMPONENT_SRCS
"src/NimBLE2904.cpp" "src/FreeRTOS.cpp"
"src/NimBLEAddress.cpp" "src/NimBLE2904.cpp"
"src/NimBLEAdvertisedDevice.cpp" "src/NimBLEAddress.cpp"
"src/NimBLEAdvertising.cpp" "src/NimBLEAdvertisedDevice.cpp"
"src/NimBLEBeacon.cpp" "src/NimBLEAdvertising.cpp"
"src/NimBLECharacteristic.cpp" "src/NimBLEBeacon.cpp"
"src/NimBLEClient.cpp" "src/NimBLECharacteristic.cpp"
"src/NimBLEDescriptor.cpp" "src/NimBLEClient.cpp"
"src/NimBLEDevice.cpp" "src/NimBLEDescriptor.cpp"
"src/NimBLEEddystoneTLM.cpp" "src/NimBLEDevice.cpp"
"src/NimBLEEddystoneURL.cpp" "src/NimBLEEddystoneTLM.cpp"
"src/NimBLERemoteCharacteristic.cpp" "src/NimBLEEddystoneURL.cpp"
"src/NimBLERemoteDescriptor.cpp" "src/NimBLERemoteCharacteristic.cpp"
"src/NimBLERemoteService.cpp" "src/NimBLERemoteDescriptor.cpp"
"src/NimBLEScan.cpp" "src/NimBLERemoteService.cpp"
"src/NimBLESecurity.cpp" "src/NimBLEScan.cpp"
"src/NimBLEServer.cpp" "src/NimBLESecurity.cpp"
"src/NimBLEService.cpp" "src/NimBLEServer.cpp"
"src/NimBLEUtils.cpp" "src/NimBLEService.cpp"
"src/NimBLEUUID.cpp" "src/NimBLEUtils.cpp"
INCLUDE_DIRS "src" "src/NimBLEUUID.cpp"
REQUIRES bt) )
set(COMPONENT_ADD_INCLUDEDIRS
src
)
set(COMPONENT_PRIV_REQUIRES
nvs_flash
bt
)
if(COMPONENTS MATCHES "esp-nimble-component")
list(APPEND COMPONENT_PRIV_REQUIRES
esp-nimble-component
)
elseif(COMPONENTS MATCHES "nimble")
list(APPEND COMPONENT_PRIV_REQUIRES
nimble
)
endif()
if(COMPONENTS MATCHES "arduino")
list(APPEND COMPONENT_PRIV_REQUIRES
arduino
)
endif()
register_component()

View file

@ -55,6 +55,11 @@ Also see [Improvements_and_updates](docs/Improvements_and_updates.md) for inform
[Full API documentation and class list can be found here.](https://h2zero.github.io/esp-nimble-cpp/) [Full API documentation and class list can be found here.](https://h2zero.github.io/esp-nimble-cpp/)
<br/> <br/>
## Using with Arduino as an IDF component and CMake
When using this library along with Arduino and compiling with *CMake* you must add `add_compile_definitions(ARDUINO_ARCH_ESP32=1)`
in your project/CMakeLists.txt after the line `include($ENV{IDF_PATH}/tools/cmake/project.cmake)` to prevent Arduino from releasing BLE memory.
<br>
# Acknowledgments # Acknowledgments
* [nkolban](https://github.com/nkolban) and [chegewara](https://github.com/chegewara) for the [original esp32 BLE library](https://github.com/nkolban/esp32-snippets/tree/master/cpp_utils) this project was derived from. * [nkolban](https://github.com/nkolban) and [chegewara](https://github.com/chegewara) for the [original esp32 BLE library](https://github.com/nkolban/esp32-snippets/tree/master/cpp_utils) this project was derived from.
* [beegee-tokyo](https://github.com/beegee-tokyo) for contributing your time to test/debug and contributing the beacon examples. * [beegee-tokyo](https://github.com/beegee-tokyo) for contributing your time to test/debug and contributing the beacon examples.