Skip to content

Commit

Permalink
CMake: Sanitize IIO feature list
Browse files Browse the repository at this point in the history
The options may not just be ON or OFF, they could be YES/NO, or 1/0.

Handle these cases with a new toggle_iio_feature() macro.

Signed-off-by: Paul Cercueil <[email protected]>
  • Loading branch information
pcercuei committed Mar 29, 2023
1 parent c0f5513 commit 6136f11
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 33 deletions.
40 changes: 24 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,14 @@ if(NOT SKIP_INSTALL_ALL)
install(FILES ${LIBIIO_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
endif()

macro(toggle_iio_feature opt str)
if (${opt})
list(APPEND IIO_FEATURES_ON ${str})
else()
list(APPEND IIO_FEATURES_OFF ${str})
endif()
endmacro()

if(WITH_TESTS)
add_subdirectory(tests)
endif()
Expand Down Expand Up @@ -648,25 +656,25 @@ string(REPLACE ";" "," LIBIIO_SCAN_BACKENDS "${LIBIIO_SCAN_BACKENDS}")

configure_file(iio-config.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/iio-config.h @ONLY)

list(APPEND IIO_FEATURES_${WITH_XML_BACKEND} xml)
list(APPEND IIO_FEATURES_${WITH_ZSTD} zstd)
list(APPEND IIO_FEATURES_${WITH_NETWORK_BACKEND} network)
list(APPEND IIO_FEATURES_${HAVE_DNS_SD} dns-sd)
list(APPEND IIO_FEATURES_${HAVE_AVAHI} avahi)
list(APPEND IIO_FEATURES_${HAVE_BONJOUR} bonjour)
list(APPEND IIO_FEATURES_${ENABLE_IPV6} ipv6)
list(APPEND IIO_FEATURES_${WITH_SERIAL_BACKEND} serial)
list(APPEND IIO_FEATURES_${WITH_LOCAL_BACKEND} local)
list(APPEND IIO_FEATURES_${WITH_LOCAL_MMAP_API} local-mmap)
list(APPEND IIO_FEATURES_${WITH_HWMON} hwmon)
list(APPEND IIO_FEATURES_${WITH_USB_BACKEND} usb)
list(APPEND IIO_FEATURES_${WITH_TESTS} utils)
list(APPEND IIO_FEATURES_${WITH_EXAMPLES} examples)
list(APPEND IIO_FEATURES_${WITH_IIOD} iiod)
toggle_iio_feature("${WITH_XML_BACKEND}" xml)
toggle_iio_feature("${WITH_ZSTD}" zstd)
toggle_iio_feature("${WITH_NETWORK_BACKEND}" network)
toggle_iio_feature("${HAVE_DNS_SD}" dns-sd)
toggle_iio_feature("${HAVE_AVAHI}" avahi)
toggle_iio_feature("${HAVE_BONJOUR}" bonjour)
toggle_iio_feature("${ENABLE_IPV6}" ipv6)
toggle_iio_feature("${WITH_SERIAL_BACKEND}" serial)
toggle_iio_feature("${WITH_LOCAL_BACKEND}" local)
toggle_iio_feature("${WITH_LOCAL_MMAP_API}" local-mmap)
toggle_iio_feature("${WITH_HWMON}" hwmon)
toggle_iio_feature("${WITH_USB_BACKEND}" usb)
toggle_iio_feature("${WITH_TESTS}" utils)
toggle_iio_feature("${WITH_EXAMPLES}" examples)
toggle_iio_feature("${WITH_IIOD}" iiod)
#add iiod settings
list(APPEND IIO_FEATURES_ON ${IIOD_FEATURES_ON})
list(APPEND IIO_FEATURES_OFF ${IIOD_FEATURES_OFF})
list(APPEND IIO_FEATURES_${WITH_DOC} doc)
toggle_iio_feature("${WITH_DOC}" doc)
#add man page settings
list(APPEND IIO_FEATURES_ON ${IIOM_FEATURES_ON})
list(APPEND IIO_FEATURES_OFF ${IIOM_FEATURES_OFF})
Expand Down
8 changes: 4 additions & 4 deletions bindings/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ if (PYTHON_BINDINGS)
add_subdirectory(python)
endif()

list(APPEND IIOB_FEATURES_${PYTHON_BINDINGS} python-bindings)
list(APPEND IIOB_FEATURES_${CSHARP_BINDINGS} "c#-bindings")
toggle_iio_feature("${PYTHON_BINDINGS}" python-bindings)
toggle_iio_feature("${CSHARP_BINDINGS}" "c#-bindings")

set(IIOB_FEATURES_ON "${IIOB_FEATURES_ON}" PARENT_SCOPE)
set(IIOB_FEATURES_OFF "${IIOB_FEATURES_OFF}" PARENT_SCOPE)
set(IIOB_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
set(IIOB_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)
18 changes: 9 additions & 9 deletions iiod/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ if (WITH_UPSTART)
install(FILES ${PROJECT_BINARY_DIR}/init/iiod.conf DESTINATION ${UPSTART_CONF_INSTALL_DIR})
endif()

list(APPEND IIOD_FEATURES_${WITH_IIOD_SERIAL} iiod-serial)
list(APPEND IIOD_FEATURES_${WITH_AIO} iiod-aio)
list(APPEND IIOD_FEATURES_${WITH_IIOD_USBD} iiod-usb)
list(APPEND IIOD_FEATURES_${WITH_SYSTEMD} iiod-systemd)
list(APPEND IIOD_FEATURES_${WITH_SYSVINIT} iiod-sysvinit)
list(APPEND IIOD_FEATURES_${WITH_UPSTART} iiod-upstart)

set(IIOD_FEATURES_ON "${IIOD_FEATURES_ON}" PARENT_SCOPE)
set(IIOD_FEATURES_OFF "${IIOD_FEATURES_OFF}" PARENT_SCOPE)
toggle_iio_feature("${WITH_IIOD_SERIAL}" iiod-serial)
toggle_iio_feature("${WITH_AIO}" iiod-aio)
toggle_iio_feature("${WITH_IIOD_USBD}" iiod-usb)
toggle_iio_feature("${WITH_SYSTEMD}" iiod-systemd)
toggle_iio_feature("${WITH_SYSVINIT}" iiod-sysvinit)
toggle_iio_feature("${WITH_UPSTART}" iiod-upstart)

set(IIOD_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
set(IIOD_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)
8 changes: 4 additions & 4 deletions man/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ if (WITH_MAN)
COMPONENT doc FILES_MATCHING PATTERN "*.1*")
endif()

list(APPEND IIOM_FEATURES_${WITH_MAN} man)
list(APPEND IIOM_FEATURES_${WITH_TESTS} man-utils)
toggle_iio_feature("${WITH_MAN}" man)
toggle_iio_feature("${WITH_TESTS}" man-utils)

set(IIOM_FEATURES_ON "${IIOM_FEATURES_ON}" PARENT_SCOPE)
set(IIOM_FEATURES_OFF "${IIOM_FEATURES_OFF}" PARENT_SCOPE)
set(IIOM_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
set(IIOM_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)

0 comments on commit 6136f11

Please sign in to comment.