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()