# - Try to find ZMQ # Once done this will define # ZMQ_FOUND - System has ZMQ # ZMQ_INCLUDE_DIRS - The ZMQ include directories # ZMQ_LIBRARIES - The libraries needed to use ZMQ # ZMQ_DEFINITIONS - Compiler switches required for using ZMQ find_path ( ZMQ_INCLUDE_DIR zmq.h HINTS ${ZMQ_ROOT}/include ) find_library ( ZMQ_LIBRARY NAMES zmq HINTS ${ZMQ_BUILD}/lib ) set ( ZMQ_LIBRARIES ${ZMQ_LIBRARY} ) set ( ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR} ) if (DEFINED ZMQ_LIBRARIES AND DEFINED ZMQ_INCLUDE_DIRS) set(file "${PROJECT_BINARY_DIR}/detect_zeromq_version.cc") file(WRITE ${file} " #include #include \"${ZMQ_INCLUDE_DIRS}/zmq.h\" int main() { std::cout << ZMQ_VERSION_MAJOR << '.' << ZMQ_VERSION_MINOR << '.' << ZMQ_VERSION_PATCH; int x, y, z; zmq_version(&x, &y, &z); return x == ZMQ_VERSION_MAJOR && y == ZMQ_VERSION_MINOR && z == ZMQ_VERSION_PATCH; } ") try_run(ZMQ_VERSION_MATCHED compile_result ${PROJECT_BINARY_DIR} ${file} RUN_OUTPUT_VARIABLE ZMQ_VERSION LINK_LIBRARIES ${ZMQ_LIBRARIES}) if (NOT ZMQ_VERSION_MATCHED) message(WARNING "Found ZMQ header version and library version do not match! \ (include: ${ZMQ_INCLUDE_DIRS}, library: ${ZMQ_LIBRARIES}). Please set ZMQ_ROOT and ZMQ_BUILD carefully.") unset(ZMQ_INCLUDE_DIRS) unset(ZMQ_LIBRARIES) unset(ZMQ_VERSION) else () message(STATUS "ZMQ version: ${ZMQ_VERSION}") endif() endif() include ( FindPackageHandleStandardArgs ) # handle the QUIETLY and REQUIRED arguments and set ZMQ_FOUND to TRUE # if all listed variables are TRUE find_package_handle_standard_args ( ZMQ REQUIRED_VARS ZMQ_LIBRARIES ZMQ_INCLUDE_DIRS VERSION_VAR ZMQ_VERSION)