From 458e9648b414b31513f4f8a5f2ef973bbf79673a Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Fri, 28 Jun 2024 14:04:05 -0700 Subject: [PATCH] review supported CMake options also defaults RF24_DRIVER to SPIDEV (per nRF24/RF24#971) --- CMakeLists.txt | 7 +++-- cmake/AutoConfig_RF24_DRIVER.cmake | 42 ++++++++++++++++-------------- examples_RPi/CMakeLists.txt | 16 ++++-------- 3 files changed, 30 insertions(+), 35 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da5b9703..47135be2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,10 +143,9 @@ if(DEFINED MESH_WRITE_TIMEOUT) message(STATUS "MESH_WRITE_TIMEOUT set to ${MESH_WRITE_TIMEOUT}") target_compile_definitions(${LibTargetName} PUBLIC MESH_WRITE_TIMEOUT=${MESH_WRITE_TIMEOUT}) endif() -# conditionally disable interruot support (a pigpio specific feature) -if("${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND" OR DEFINED RF24_NO_INTERRUPT) - message(STATUS "Disabling IRQ pin support") - target_compile_definitions(${LibTargetName} PUBLIC RF24_NO_INTERRUPT) +if(DEFINED RF24MESH_CONN_CHECK_TYPE) + message(STATUS "RF24MESH_CONN_CHECK_TYPE set to ${RF24MESH_CONN_CHECK_TYPE}") + target_compile_definitions(${LibTargetName} PUBLIC RF24MESH_CONN_CHECK_TYPE=${RF24MESH_CONN_CHECK_TYPE}) endif() diff --git a/cmake/AutoConfig_RF24_DRIVER.cmake b/cmake/AutoConfig_RF24_DRIVER.cmake index 6e942caf..99e04082 100644 --- a/cmake/AutoConfig_RF24_DRIVER.cmake +++ b/cmake/AutoConfig_RF24_DRIVER.cmake @@ -26,31 +26,33 @@ else() endif() -if(${RF24_DRIVER} STREQUAL "UNKNOWN") # invokes automatic configuration - if("${SOC}" STREQUAL "BCM2708" OR "${SOC}" STREQUAL "BCM2709" OR "${SOC}" STREQUAL "BCM2835") - set(RF24_DRIVER RPi CACHE STRING "using folder /utility/RPi" FORCE) - elseif(NOT "${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND") - message(STATUS "Found pigpio library: ${LibPIGPIO}") - set(RF24_DRIVER pigpio CACHE STRING "using folder /utility/pigpio" FORCE) - elseif(NOT "${LibWiringPi}" STREQUAL "LibWiringPi-NOTFOUND") - message(STATUS "Found wiringPi library: ${LibWiringPi}") - set(RF24_DRIVER wiringPi CACHE STRING "using folder /utility/wiringPi" FORCE) - elseif(NOT "${LibLittleWire}" STREQUAL "LibLittleWire-NOTFOUND") - message(STATUS "Found LittleWire library: ${LibLittleWire}") - set(RF24_DRIVER LittleWire CACHE STRING "using folder /utility/LittleWire" FORCE) - elseif(NOT "${LibMRAA}" STREQUAL "LibMRAA-NOTFOUND") - message(STATUS "Found MRAA library: ${LibMRAA}") - set(RF24_DRIVER MRAA CACHE STRING "using folder /utility/MRAA" FORCE) - elseif(SPIDEV_EXISTS) # should be a non-empty string if SPI is enabled - message(STATUS "detected that SPIDEV is enabled: ${SPIDEV_EXISTS}") - set(RF24_DRIVER SPIDEV CACHE STRING "using folder /utility/SPIDEV" FORCE) - endif() -endif() +# if(${RF24_DRIVER} STREQUAL "UNKNOWN") # invokes automatic configuration +# if("${SOC}" STREQUAL "BCM2708" OR "${SOC}" STREQUAL "BCM2709" OR "${SOC}" STREQUAL "BCM2835") +# set(RF24_DRIVER RPi CACHE STRING "using folder /utility/RPi" FORCE) +# elseif(NOT "${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND") +# message(STATUS "Found pigpio library: ${LibPIGPIO}") +# set(RF24_DRIVER pigpio CACHE STRING "using folder /utility/pigpio" FORCE) +# elseif(NOT "${LibWiringPi}" STREQUAL "LibWiringPi-NOTFOUND") +# message(STATUS "Found wiringPi library: ${LibWiringPi}") +# set(RF24_DRIVER wiringPi CACHE STRING "using folder /utility/wiringPi" FORCE) +# elseif(NOT "${LibLittleWire}" STREQUAL "LibLittleWire-NOTFOUND") +# message(STATUS "Found LittleWire library: ${LibLittleWire}") +# set(RF24_DRIVER LittleWire CACHE STRING "using folder /utility/LittleWire" FORCE) +# elseif(NOT "${LibMRAA}" STREQUAL "LibMRAA-NOTFOUND") +# message(STATUS "Found MRAA library: ${LibMRAA}") +# set(RF24_DRIVER MRAA CACHE STRING "using folder /utility/MRAA" FORCE) +# elseif(SPIDEV_EXISTS) # should be a non-empty string if SPI is enabled +# message(STATUS "detected that SPIDEV is enabled: ${SPIDEV_EXISTS}") +# set(RF24_DRIVER SPIDEV CACHE STRING "using folder /utility/SPIDEV" FORCE) +# endif() +# endif() # override the auto-detect if RF24_DRIVER is defined in an env var if(DEFINED ENV{RF24_DRIVER}) message(STATUS "RF24_DRIVER (set from env var) = $ENV{RF24_DRIVER}") set(RF24_DRIVER $ENV{RF24_DRIVER} CACHE STRING "" FORCE) +elseif(${RF24_DRIVER} STREQUAL "UNKNOWN") + set(RF24_DRIVER SPIDEV CACHE STRING "using folder RF24/utility/SPIDEV" FORCE) endif() message(STATUS "Using driver: ${RF24_DRIVER}") diff --git a/examples_RPi/CMakeLists.txt b/examples_RPi/CMakeLists.txt index fe44a993..e202e47d 100644 --- a/examples_RPi/CMakeLists.txt +++ b/examples_RPi/CMakeLists.txt @@ -47,15 +47,13 @@ elseif("${RF24_DRIVER}" STREQUAL "wiringPi") else() message(FATAL "Lib ${RF24_DRIVER} not found.") endif() -elseif(NOT "${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND" AND NOT DEFINED RF24_NO_INTERUPT) - if(NOT "${RF24_DRIVER}" STREQUAL "pigpio") - message(STATUS "linking to ${LibPIGPIO} for interrupt support") - else() +elseif("${RF24_DRIVER}" STREQUAL "pigpio") + if(NOT "${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND") message(STATUS "linking to ${LibPIGPIO}") + list(APPEND linked_libs ${LibPIGPIO}) + else() + message(FATAL "Lib ${RF24_DRIVER} not found.") endif() - list(APPEND linked_libs ${LibPIGPIO}) -else() - message(STATUS "Disabling IRQ pin support") endif() foreach(example ${EXAMPLES_LIST}) @@ -63,10 +61,6 @@ foreach(example ${EXAMPLES_LIST}) add_executable(${example} ${example}.cpp) # link the RF24 lib to the target. target_link_libraries(${example} PUBLIC ${linked_libs}) - # conditionally disable interruot support (a pigpio specific feature) - if("${LibPIGPIO}" STREQUAL "LibPIGPIO-NOTFOUND" OR DEFINED RF24_NO_INTERRUPT) - target_compile_definitions(${example} PUBLIC RF24_NO_INTERRUPT) - endif() endforeach() include(../cmake/enableNcursesExample.cmake)