- message(STATUS "Atomics provided by the C-library - no")
- find_library(LIBATOMIC_LIBRARY NAMES atomic PATH_SUFFIXES lib)
- if(LIBATOMIC_LIBRARY)
- check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB "${LIBATOMIC_LIBRARY}")
- if (HAVE_CXX_ATOMICS_WITH_LIB)
- message(STATUS "Atomics provided by libatomic - yes")
- else()
- message(STATUS "Atomics provided by libatomic - no")
- message(FATAL_ERROR "Compiler must support std::atomic!")
- endif()
- else()
- message(FATAL_ERROR "Compiler appears to require libatomic, but cannot find it.")
- endif()
+ message(STATUS "Atomics provided by the C-library - no")
+ find_library(LIBATOMIC_LIBRARY NAMES atomic PATH_SUFFIXES lib)
+ if(LIBATOMIC_LIBRARY)
+ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB "${LIBATOMIC_LIBRARY}")
+ if (HAVE_CXX_ATOMICS_WITH_LIB)
+ message(STATUS "Atomics provided by libatomic - yes")
+ else()
+ message(STATUS "Atomics provided by libatomic - no")
+ message(FATAL_ERROR "Compiler must support std::atomic!")
+ endif()
+ else()
+ message(FATAL_ERROR "Compiler appears to require libatomic, but cannot find it.")
+ endif()
+endif()
+
+# Check availability of features which depend on library versions.
+# TODO Ideally use check_symbol_exists() instead, reduce boilerplate.
+if(ENABLE_DECODE)
+ 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 <libsigrokdecode/libsigrokdecode.h>
+ 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()