CMake: Minor modernization
Rely more on transitive dependencies, as provided by
TARGET_LINK_LIBRARIES. Avoid using ADD_DEFINITIONS and
INCLUDE_DIRECTORIES. This avoids leakage/pollution of defines and
includes.
@@ -22,8 +22,6 @@ PROJECT(hiredis VERSION "${VERSION}")
SET(ENABLE_EXAMPLES OFF CACHE BOOL "Enable building hiredis examples")
-INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
-
ADD_LIBRARY(hiredis SHARED
async.c
dict.c
@@ -40,6 +38,7 @@ SET_TARGET_PROPERTIES(hiredis
IF(WIN32 OR MINGW)
TARGET_LINK_LIBRARIES(hiredis PRIVATE ws2_32)
ENDIF()
+TARGET_INCLUDE_DIRECTORIES(hiredis PUBLIC .)
CONFIGURE_FILE(hiredis.pc.in hiredis.pc @ONLY)
@@ -59,9 +58,9 @@ IF(HIREDIS_SSL)
ENDIF()
ENDIF()
FIND_PACKAGE(OpenSSL REQUIRED)
- ADD_DEFINITIONS(-DHIREDIS_SSL)
- INCLUDE_DIRECTORIES("${OPENSSL_INCLUDE_DIR}")
- TARGET_LINK_LIBRARIES(hiredis ${OPENSSL_LIBRARIES})
+ TARGET_COMPILE_DEFINITIONS(hiredis PRIVATE HIREDIS_SSL)
+ TARGET_INCLUDE_DIRECTORIES(hiredis PRIVATE "${OPENSSL_INCLUDE_DIR}")
+ TARGET_LINK_LIBRARIES(hiredis PRIVATE ${OPENSSL_LIBRARIES})
ENDIF()
IF(NOT (WIN32 OR MINGW))
