diff --git a/CMakeLists.txt b/CMakeLists.txt index add9c02f..7791b1b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,6 +188,29 @@ else() endif() endif() +# Check availability of features which depend on library versions. +# TODO Ideally use check_symbol_exists() instead, reduce boilerplate. +if(ENABLE_DECODE) + include(CheckCSourceCompiles) + include(CMakePushCheckState) + cmake_push_check_state() + set(CMAKE_REQUIRED_INCLUDES "${PKGDEPS_INCLUDE_DIRS}") + set(CMAKE_REQUIRED_LIBRARIES "sigrokdecode") + foreach (LPATH ${PKGDEPS_LIBRARY_DIRS}) + list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "-L${LPATH}") + endforeach () + check_c_source_compiles(" + #include + int main(int argc, char *argv[]) + { + (void)argc; + (void)argv; + return srd_session_send_eof(NULL); + } + " HAVE_SRD_SESSION_SEND_EOF) + cmake_pop_check_state() +endif() + #=============================================================================== #= System Introspection #------------------------------------------------------------------------------- diff --git a/config.h.in b/config.h.in index 7720001a..f5855d18 100644 --- a/config.h.in +++ b/config.h.in @@ -34,6 +34,9 @@ /* Platform properties */ #cmakedefine HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS +/* Presence of features which depend on library versions. */ +#cmakedefine HAVE_SRD_SESSION_SEND_EOF 1 + #define PV_GLIBMM_VERSION "@PV_GLIBMM_VERSION@" #endif