Skip to content

Commit 6136f11

Browse files
committed
CMake: Sanitize IIO feature list
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]>
1 parent c0f5513 commit 6136f11

File tree

4 files changed

+41
-33
lines changed

4 files changed

+41
-33
lines changed

CMakeLists.txt

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,14 @@ if(NOT SKIP_INSTALL_ALL)
458458
install(FILES ${LIBIIO_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
459459
endif()
460460

461+
macro(toggle_iio_feature opt str)
462+
if (${opt})
463+
list(APPEND IIO_FEATURES_ON ${str})
464+
else()
465+
list(APPEND IIO_FEATURES_OFF ${str})
466+
endif()
467+
endmacro()
468+
461469
if(WITH_TESTS)
462470
add_subdirectory(tests)
463471
endif()
@@ -648,25 +656,25 @@ string(REPLACE ";" "," LIBIIO_SCAN_BACKENDS "${LIBIIO_SCAN_BACKENDS}")
648656

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

651-
list(APPEND IIO_FEATURES_${WITH_XML_BACKEND} xml)
652-
list(APPEND IIO_FEATURES_${WITH_ZSTD} zstd)
653-
list(APPEND IIO_FEATURES_${WITH_NETWORK_BACKEND} network)
654-
list(APPEND IIO_FEATURES_${HAVE_DNS_SD} dns-sd)
655-
list(APPEND IIO_FEATURES_${HAVE_AVAHI} avahi)
656-
list(APPEND IIO_FEATURES_${HAVE_BONJOUR} bonjour)
657-
list(APPEND IIO_FEATURES_${ENABLE_IPV6} ipv6)
658-
list(APPEND IIO_FEATURES_${WITH_SERIAL_BACKEND} serial)
659-
list(APPEND IIO_FEATURES_${WITH_LOCAL_BACKEND} local)
660-
list(APPEND IIO_FEATURES_${WITH_LOCAL_MMAP_API} local-mmap)
661-
list(APPEND IIO_FEATURES_${WITH_HWMON} hwmon)
662-
list(APPEND IIO_FEATURES_${WITH_USB_BACKEND} usb)
663-
list(APPEND IIO_FEATURES_${WITH_TESTS} utils)
664-
list(APPEND IIO_FEATURES_${WITH_EXAMPLES} examples)
665-
list(APPEND IIO_FEATURES_${WITH_IIOD} iiod)
659+
toggle_iio_feature("${WITH_XML_BACKEND}" xml)
660+
toggle_iio_feature("${WITH_ZSTD}" zstd)
661+
toggle_iio_feature("${WITH_NETWORK_BACKEND}" network)
662+
toggle_iio_feature("${HAVE_DNS_SD}" dns-sd)
663+
toggle_iio_feature("${HAVE_AVAHI}" avahi)
664+
toggle_iio_feature("${HAVE_BONJOUR}" bonjour)
665+
toggle_iio_feature("${ENABLE_IPV6}" ipv6)
666+
toggle_iio_feature("${WITH_SERIAL_BACKEND}" serial)
667+
toggle_iio_feature("${WITH_LOCAL_BACKEND}" local)
668+
toggle_iio_feature("${WITH_LOCAL_MMAP_API}" local-mmap)
669+
toggle_iio_feature("${WITH_HWMON}" hwmon)
670+
toggle_iio_feature("${WITH_USB_BACKEND}" usb)
671+
toggle_iio_feature("${WITH_TESTS}" utils)
672+
toggle_iio_feature("${WITH_EXAMPLES}" examples)
673+
toggle_iio_feature("${WITH_IIOD}" iiod)
666674
#add iiod settings
667675
list(APPEND IIO_FEATURES_ON ${IIOD_FEATURES_ON})
668676
list(APPEND IIO_FEATURES_OFF ${IIOD_FEATURES_OFF})
669-
list(APPEND IIO_FEATURES_${WITH_DOC} doc)
677+
toggle_iio_feature("${WITH_DOC}" doc)
670678
#add man page settings
671679
list(APPEND IIO_FEATURES_ON ${IIOM_FEATURES_ON})
672680
list(APPEND IIO_FEATURES_OFF ${IIOM_FEATURES_OFF})

bindings/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ if (PYTHON_BINDINGS)
66
add_subdirectory(python)
77
endif()
88

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

12-
set(IIOB_FEATURES_ON "${IIOB_FEATURES_ON}" PARENT_SCOPE)
13-
set(IIOB_FEATURES_OFF "${IIOB_FEATURES_OFF}" PARENT_SCOPE)
12+
set(IIOB_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
13+
set(IIOB_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)

iiod/CMakeLists.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ if (WITH_UPSTART)
106106
install(FILES ${PROJECT_BINARY_DIR}/init/iiod.conf DESTINATION ${UPSTART_CONF_INSTALL_DIR})
107107
endif()
108108

109-
list(APPEND IIOD_FEATURES_${WITH_IIOD_SERIAL} iiod-serial)
110-
list(APPEND IIOD_FEATURES_${WITH_AIO} iiod-aio)
111-
list(APPEND IIOD_FEATURES_${WITH_IIOD_USBD} iiod-usb)
112-
list(APPEND IIOD_FEATURES_${WITH_SYSTEMD} iiod-systemd)
113-
list(APPEND IIOD_FEATURES_${WITH_SYSVINIT} iiod-sysvinit)
114-
list(APPEND IIOD_FEATURES_${WITH_UPSTART} iiod-upstart)
115-
116-
set(IIOD_FEATURES_ON "${IIOD_FEATURES_ON}" PARENT_SCOPE)
117-
set(IIOD_FEATURES_OFF "${IIOD_FEATURES_OFF}" PARENT_SCOPE)
109+
toggle_iio_feature("${WITH_IIOD_SERIAL}" iiod-serial)
110+
toggle_iio_feature("${WITH_AIO}" iiod-aio)
111+
toggle_iio_feature("${WITH_IIOD_USBD}" iiod-usb)
112+
toggle_iio_feature("${WITH_SYSTEMD}" iiod-systemd)
113+
toggle_iio_feature("${WITH_SYSVINIT}" iiod-sysvinit)
114+
toggle_iio_feature("${WITH_UPSTART}" iiod-upstart)
115+
116+
set(IIOD_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
117+
set(IIOD_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)

man/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ if (WITH_MAN)
6161
COMPONENT doc FILES_MATCHING PATTERN "*.1*")
6262
endif()
6363

64-
list(APPEND IIOM_FEATURES_${WITH_MAN} man)
65-
list(APPEND IIOM_FEATURES_${WITH_TESTS} man-utils)
64+
toggle_iio_feature("${WITH_MAN}" man)
65+
toggle_iio_feature("${WITH_TESTS}" man-utils)
6666

67-
set(IIOM_FEATURES_ON "${IIOM_FEATURES_ON}" PARENT_SCOPE)
68-
set(IIOM_FEATURES_OFF "${IIOM_FEATURES_OFF}" PARENT_SCOPE)
67+
set(IIOM_FEATURES_ON "${IIO_FEATURES_ON}" PARENT_SCOPE)
68+
set(IIOM_FEATURES_OFF "${IIO_FEATURES_OFF}" PARENT_SCOPE)

0 commit comments

Comments
 (0)