@@ -33,6 +33,12 @@ SET(hiredis_sources
3333 sockcompat.c
3434 alloc.c)
3535
36+ SET (hiredis_sources ${hiredis_sources} )
37+
38+ IF (WIN32 )
39+ ADD_COMPILE_DEFINITIONS (_CRT_SECURE_NO_WARNINGS WIN32_LEAN_AND_MEAN )
40+ ENDIF ()
41+
3642ADD_LIBRARY (hiredis SHARED ${hiredis_sources} )
3743
3844SET_TARGET_PROPERTIES (hiredis
@@ -41,12 +47,16 @@ SET_TARGET_PROPERTIES(hiredis
4147IF (WIN32 OR MINGW)
4248 TARGET_LINK_LIBRARIES (hiredis PRIVATE ws2_32 )
4349ENDIF ()
44- TARGET_INCLUDE_DIRECTORIES (hiredis PUBLIC . )
50+
51+ TARGET_INCLUDE_DIRECTORIES (hiredis PUBLIC $<INSTALL_INTERFACE :.> $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } >)
4552
4653CONFIGURE_FILE (hiredis.pc.in hiredis.pc @ONLY )
4754
4855INSTALL (TARGETS hiredis
49- DESTINATION "${CMAKE_INSTALL_LIBDIR} " )
56+ EXPORT hiredis-targets
57+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
58+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
59+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
5060
5161INSTALL (FILES hiredis.h read.h sds.h async.h alloc.h
5262 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /hiredis)
@@ -57,30 +67,77 @@ INSTALL(DIRECTORY adapters
5767INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR } /hiredis.pc
5868 DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
5969
70+ export (EXPORT hiredis-targets
71+ FILE "${CMAKE_CURRENT_BINARY_DIR } /hiredis-targets.cmake"
72+ NAMESPACE hiredis:: )
73+
74+ SET (CMAKE_CONF_INSTALL_DIR share/hiredis)
75+ SET (INCLUDE_INSTALL_DIR include)
76+ include (CMakePackageConfigHelpers )
77+ configure_package_config_file (hiredis-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR } /hiredis-config.cmake
78+ INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
79+ PATH_VARS INCLUDE_INSTALL_DIR )
80+
81+ INSTALL (EXPORT hiredis-targets
82+ FILE hiredis-targets .cmake
83+ NAMESPACE hiredis::
84+ DESTINATION ${CMAKE_CONF_INSTALL_DIR} )
85+
86+ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR } /hiredis-config.cmake
87+ DESTINATION ${CMAKE_CONF_INSTALL_DIR} )
88+
89+
6090IF (ENABLE_SSL)
6191 IF (NOT OPENSSL_ROOT_DIR)
6292 IF (APPLE )
6393 SET (OPENSSL_ROOT_DIR "/usr/local/opt/openssl" )
6494 ENDIF ()
6595 ENDIF ()
6696 FIND_PACKAGE (OpenSSL REQUIRED )
67- ADD_LIBRARY ( hiredis_ssl SHARED
97+ SET (hiredis_ssl_sources
6898 ssl.c)
99+ ADD_LIBRARY (hiredis_ssl SHARED
100+ ${hiredis_ssl_sources} )
69101 SET_TARGET_PROPERTIES (hiredis_ssl
70- PROPERTIES
102+ PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE
71103 VERSION "${HIREDIS_SONAME} " )
104+
105+
72106 TARGET_INCLUDE_DIRECTORIES (hiredis_ssl PRIVATE "${OPENSSL_INCLUDE_DIR} " )
73107 TARGET_LINK_LIBRARIES (hiredis_ssl PRIVATE ${OPENSSL_LIBRARIES} )
108+ IF (WIN32 OR MINGW)
109+ TARGET_LINK_LIBRARIES (hiredis_ssl PRIVATE hiredis )
110+ ENDIF ()
74111 CONFIGURE_FILE (hiredis_ssl.pc.in hiredis_ssl.pc @ONLY )
75112
76113 INSTALL (TARGETS hiredis_ssl
77- DESTINATION "${CMAKE_INSTALL_LIBDIR} " )
114+ EXPORT hiredis_ssl-targets
115+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
116+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
117+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
78118
79119 INSTALL (FILES hiredis_ssl.h
80120 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /hiredis)
81121
82122 INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR } /hiredis_ssl.pc
83123 DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
124+
125+ export (EXPORT hiredis_ssl-targets
126+ FILE "${CMAKE_CURRENT_BINARY_DIR } /hiredis_ssl-targets.cmake"
127+ NAMESPACE hiredis:: )
128+
129+ SET (CMAKE_CONF_INSTALL_DIR share/hiredis_ssl)
130+ configure_package_config_file (hiredis_ssl-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR } /hiredis_ssl-config.cmake
131+ INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR}
132+ PATH_VARS INCLUDE_INSTALL_DIR )
133+
134+ INSTALL (EXPORT hiredis_ssl-targets
135+ FILE hiredis_ssl-targets .cmake
136+ NAMESPACE hiredis::
137+ DESTINATION ${CMAKE_CONF_INSTALL_DIR} )
138+
139+ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR } /hiredis_ssl-config.cmake
140+ DESTINATION ${CMAKE_CONF_INSTALL_DIR} )
84141ENDIF ()
85142
86143IF (NOT DISABLE_TESTS)
0 commit comments