blob: 6686431b8b7c96e1d89d25162635b1e6c8681a65 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#
# Find the ZMQ includes and library
#
# This module defines
# ZMQ_INCLUDE_DIR, where to find zmq.h
# ZMQ_LIBRARY, the library needed to use ZMQ
# ZMQ_FOUND, if false, you cannot build anything that requires ZMQ.
set(ZMQ_FOUND 0)
if (PLATFORM EQUAL 64)
set(ZMQ_REGISTRY_PATH
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ (x64);DisplayIcon]"
)
else()
set(ZMQ_REGISTRY_PATH
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ;DisplayIcon]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ;DisplayIcon]"
)
endif()
find_path(ZMQ_ROOT_DIR
NAMES
include/zmq.h
HINTS
"${ZMQ_REGISTRY_PATH}"
PATHS
/usr
/usr/local
)
find_path(ZMQ_INCLUDE_DIR zmq.h ${ZMQ_ROOT_DIR}/include)
if (MSVC)
# Read registry key holding version
if (PLATFORM EQUAL 64)
get_filename_component(ZMQ_NAME "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ (x64);DisplayVersion]" NAME)
else()
get_filename_component(ZMQ_NAME "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ;DisplayVersion]" NAME)
if (${ZMQ_NAME} MATCHES "registry") # if key was not found, the string "registry" is returned
get_filename_component(ZMQ_NAME "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ZeroMQ;DisplayVersion]" NAME)
endif()
endif()
# Replace dots with underscores
string(REGEX REPLACE "\\." "_" ZMQ_NAME ${ZMQ_NAME})
# Get Visual studio version number
string(REGEX REPLACE "Visual Studio ([0-9]+).*" "\\1" ZMQ_VS_VERSION ${CMAKE_GENERATOR})
# Format ZMQ library file name
set(ZMQ_LIBRARY_NAME "libzmq-v${ZMQ_VS_VERSION}0-mt-${ZMQ_NAME}")
endif()
find_library(ZMQ_LIBRARY
NAMES
zmq
${ZMQ_LIBRARY_NAME}
PATHS
/lib
/usr/lib
/usr/local/lib
"${ZMQ_ROOT_DIR}/lib"
)
if (ZMQ_INCLUDE_DIR AND ZMQ_LIBRARY)
set(ZMQ_FOUND 1)
message(STATUS "Found ZMQ library: ${ZMQ_LIBRARY}")
message(STATUS "Found ZMQ headers: ${ZMQ_INCLUDE_DIR}")
else()
message(FATAL_ERROR "Could not find ZMQ libraries/headers! Please install ZMQ with libraries and headers")
endif()
# show the ZMQ_INCLUDE_DIR and ZMQ_LIBRARY variables only in the advanced view
mark_as_advanced(ZMQ_ROOT_DIR ZMQ_INCLUDE_DIR ZMQ_LIBRARY ZMQ_FOUND)
|