summaryrefslogtreecommitdiff
path: root/examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt')
-rw-r--r--examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt76
1 files changed, 76 insertions, 0 deletions
diff --git a/examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt b/examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt
new file mode 100644
index 0000000..eef2ebe
--- /dev/null
+++ b/examples/ble_peripheral/ble_app_buttonless_dfu/CMakeLists.txt
@@ -0,0 +1,76 @@
+set(T ble_app_buttonless_dfu)
+set(D ${MCU_NRF5X_SDK_PATH}/examples/ble_peripheral/experimental_${T})
+
+if (NOT EXISTS ${D})
+ message("${T}: Not available in this SDK version: ${D}")
+ return()
+endif ()
+
+if (MCU_CHIP MATCHES "nrf51.*")
+ set(SOFTDEVICE 130)
+ set(SDK_CONFIG ${D}/pca10028/s130/config/sdk_config.h)
+ set(D_BOARD BOARD_PCA10028)
+elseif (MCU_CHIP MATCHES "nrf52.*")
+ set(SOFTDEVICE 132)
+ set(SDK_CONFIG ${D}/pca10040/s132/config/sdk_config.h)
+ set(D_BOARD BOARD_PCA10040)
+endif ()
+
+message("${T}: Configured for chip ${MCU_CHIP}, using sdk config=${SDK_CONFIG}, board define: ${D_BOARD}")
+
+if (MCU_NRF5X_SDK_VERSION VERSION_GREATER 7)
+ list(APPEND EXTRA_SOURCE_DIRS
+ ${MCU_NRF5X_SDK_PATH}/components/drivers_nrf/delay
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/experimental_section_vars
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/crc32)
+endif ()
+
+mcu_include_directories_from_sources(
+ SOURCES_VAR SOURCES
+ HEADERS_VAR HEADERS
+ INCLUDES_VAR INCLUDES
+ SOURCE_DIR
+ ${MCU_NRF5X_SDK_PATH}/components/ble/ble_advertising
+ ${MCU_NRF5X_SDK_PATH}/components/ble/ble_services/ble_dfu
+ ${MCU_NRF5X_SDK_PATH}/components/ble/common
+ ${MCU_NRF5X_SDK_PATH}/components/ble/peer_manager
+ ${MCU_NRF5X_SDK_PATH}/components/drivers_nrf/clock
+ ${MCU_NRF5X_SDK_PATH}/components/drivers_nrf/common
+ ${MCU_NRF5X_SDK_PATH}/components/drivers_nrf/gpiote
+ ${MCU_NRF5X_SDK_PATH}/components/drivers_nrf/hal
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/button
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/fds
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/fstorage
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/log
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/scheduler
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/sensorsim
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/util
+ ${MCU_NRF5X_SDK_PATH}/components/softdevice/common/softdevice_handler
+ ${EXTRA_SOURCE_DIRS}
+ EXCLUDE
+ "app_timer_freertos"
+ "app_error_weak_cmock"
+ "app_timer_rtx"
+)
+
+add_executable(${T}
+ ${D}/main.c ${D}/nrf_dfu_flash_buttonless.c ${SDK_CONFIG}
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/bootloader/dfu/nrf_dfu_settings.c
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/timer/app_timer.c
+ ${MCU_NRF5X_SDK_PATH}/examples/bsp/bsp.c
+ ${MCU_NRF5X_SDK_PATH}/examples/bsp/bsp_btn_ble.c
+ ${SOURCES} ${HEADERS})
+
+target_include_directories(${T} PUBLIC
+ ${INCLUDES}
+ ${MCU_NRF5X_SDK_PATH}/examples/bsp
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/bootloader/dfu
+ ${MCU_NRF5X_SDK_PATH}/components/libraries/timer)
+target_compile_definitions(${T} PUBLIC ${D_BOARD})
+target_compile_definitions(${T} PUBLIC BLE_STACK_SUPPORT_REQD)
+target_compile_definitions(${T} PUBLIC NRF_DFU_SETTINGS_VERSION=1337) # Is this correct?
+target_compile_definitions(${T} PUBLIC NRF_SD_BLE_API_VERSION=3)
+mcu_add_executable(TARGET ${T}
+ SDK_CONFIG ${SDK_CONFIG}
+ SOFTDEVICE ${SOFTDEVICE}
+ LINKER_SCRIPT ${D}/pca10040/s132/armgcc/${T}_gcc_nrf52.ld)