Warning, /plasma/lancelot/cmake/modules/FindZMQ.cmake is written in an unsupported language. File is not indexed.
0001 # Find ZMQ Headers/Libs 0002 0003 # Variables 0004 # ZMQ_ROOT - set this to a location where ZMQ may be found 0005 # 0006 # ZMQ_FOUND - True of ZMQ found 0007 # ZMQ_INCLUDE_DIR - Location of ZMQ includes 0008 # ZMQ_LIBRARIES - ZMQ libraries 0009 0010 include(FindPackageHandleStandardArgs) 0011 0012 if (NOT ZMQ_ROOT) 0013 set(ZMQ_ROOT "$ENV{ZMQ_ROOT}") 0014 endif() 0015 0016 if (NOT ZMQ_ROOT) 0017 find_path(_ZMQ_ROOT NAMES include/zmq.h) 0018 else() 0019 set(_ZMQ_ROOT "${ZMQ_ROOT}") 0020 endif() 0021 0022 find_path(ZMQ_INCLUDE_DIR NAMES zmq.h HINTS ${_ZMQ_ROOT}/include) 0023 0024 if (ZMQ_INCLUDE_DIR) 0025 set(_ZMQ_H ${ZMQ_INCLUDE_DIR}/zmq.h) 0026 0027 function(_zmqver_EXTRACT _ZMQ_VER_COMPONENT _ZMQ_VER_OUTPUT) 0028 set(CMAKE_MATCH_1 "0") 0029 set(_ZMQ_expr "^[ \\t]*#define[ \\t]+${_ZMQ_VER_COMPONENT}[ \\t]+([0-9]+)$") 0030 file(STRINGS "${_ZMQ_H}" _ZMQ_ver REGEX "${_ZMQ_expr}") 0031 string(REGEX MATCH "${_ZMQ_expr}" ZMQ_ver "${_ZMQ_ver}") 0032 set(${_ZMQ_VER_OUTPUT} "${CMAKE_MATCH_1}" PARENT_SCOPE) 0033 endfunction() 0034 0035 _zmqver_EXTRACT("ZMQ_VERSION_MAJOR" ZMQ_VERSION_MAJOR) 0036 _zmqver_EXTRACT("ZMQ_VERSION_MINOR" ZMQ_VERSION_MINOR) 0037 _zmqver_EXTRACT("ZMQ_VERSION_PATCH" ZMQ_VERSION_PATCH) 0038 0039 message(STATUS "ZMQ version: ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}") 0040 0041 # We should provide version to find_package_handle_standard_args in the same format as it was requested, 0042 # otherwise it can't check whether version matches exactly. 0043 if (ZMQ_FIND_VERSION_COUNT GREATER 2) 0044 set(ZMQ_VERSION "${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}") 0045 else() 0046 # User has requested ZMQ version without patch part => user is not interested in specific patch => 0047 # any patch should be an exact match. 0048 set(ZMQ_VERSION "${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}") 0049 endif() 0050 0051 if (NOT ${CMAKE_CXX_PLATFORM_ID} STREQUAL "Windows") 0052 find_library(ZMQ_LIBRARIES NAMES zmq HINTS ${_ZMQ_ROOT}/lib) 0053 else() 0054 find_library( 0055 ZMQ_LIBRARY_RELEASE 0056 NAMES 0057 libzmq 0058 "libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}" 0059 HINTS 0060 ${_ZMQ_ROOT}/lib 0061 ) 0062 0063 find_library( 0064 ZMQ_LIBRARY_DEBUG 0065 NAMES 0066 libzmq_d 0067 "libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}" 0068 HINTS 0069 ${_ZMQ_ROOT}/lib) 0070 0071 # On Windows we have to use corresponding version (i.e. Release or Debug) of ZMQ because of `errno` CRT global variable 0072 # See more at http://www.drdobbs.com/avoiding-the-visual-c-runtime-library/184416623 0073 set(ZMQ_LIBRARIES optimized "${ZMQ_LIBRARY_RELEASE}" debug "${ZMQ_LIBRARY_DEBUG}") 0074 endif() 0075 endif() 0076 0077 find_package_handle_standard_args(ZMQ FOUND_VAR ZMQ_FOUND 0078 REQUIRED_VARS ZMQ_INCLUDE_DIR ZMQ_LIBRARIES 0079 VERSION_VAR ZMQ_VERSION) 0080 0081 if (ZMQ_FOUND) 0082 mark_as_advanced(ZMQ_INCLUDE_DIR ZMQ_LIBRARIES ZMQ_VERSION 0083 ZMQ_VERSION_MAJOR ZMQ_VERSION_MINOR ZMQ_VERSION_PATCH) 0084 endif()