Commit c0a7e59674086afb903ac3a2c25dcd43d352e3d3

Authored by Hayk Martirosyan
2 parents 8f67d9dd ba1d4231

Merge pull request #32 from esindril/master

Add CMake find module for hiredis and libev
CMakeLists.txt
... ... @@ -17,11 +17,28 @@ if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
17 17 endif(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
18 18  
19 19 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC -Wall")
  20 +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
20 21  
21 22 # Print out compiler commands
22 23 # set(CMAKE_VERBOSE_MAKEFILE ON)
23 24  
24 25 # ---------------------------------------------------------
  26 +# Check for required dependencies
  27 +# ---------------------------------------------------------
  28 +if(CMAKE_VERSION VERSION_GREATER 2.8.5 OR CMAKE_VERSION VERSION_EQUAL 2.8.5)
  29 + include(GNUInstallDirs)
  30 +endif()
  31 +
  32 +find_package(Threads REQUIRED)
  33 +find_package(hiredis REQUIRED)
  34 +find_package(libev REQUIRED)
  35 +
  36 +set(REDOX_LIB_DEPS
  37 + ${HIREDIS_LIBRARIES}
  38 + ${LIBEV_LIBRARIES}
  39 + ${CMAKE_THREAD_LIBS_INIT})
  40 +
  41 +# ---------------------------------------------------------
25 42 # Source files
26 43 # ---------------------------------------------------------
27 44  
... ... @@ -49,11 +66,6 @@ set(INC_REDOX_ALL ${INC_REDOX_CORE} ${INC_REDOX_UTILS} ${INC_REDOX_WRAPPER})
49 66 include_directories(${INC_REDOX_DIR})
50 67 include_directories(${INC_REDOX_DIR}/redox)
51 68  
52   -# Dependent libraries - you may have to change
53   -# pthread to whatever C++11 threads depends on
54   -# for your platform
55   -set(REDOX_LIB_DEPS ev pthread hiredis)
56   -
57 69 # ---------------------------------------------------------
58 70 # Library generation
59 71 # ---------------------------------------------------------
... ...
cmake/Findhiredis.cmake 0 → 100644
  1 +# Try to find hiredis
  2 +# Once done, this will define
  3 +#
  4 +# HIREDIS_FOUND - system has hiredis
  5 +# HIREDIS_INCLUDE_DIRS - hiredis include directories
  6 +# HIREDIS_LIBRARIES - libraries need to use hiredis
  7 +
  8 +if(HIREDIS_INCLUDE_DIRS AND HIREDIS_LIBRARIES)
  9 + set(HIREDIS_FIND_QUIETLY TRUE)
  10 +else()
  11 + find_path(
  12 + HIREDIS_INCLUDE_DIR
  13 + NAMES hiredis/hiredis.h
  14 + HINTS ${HIREDIS_ROOT_DIR}
  15 + PATH_SUFFIXES include)
  16 +
  17 + find_library(
  18 + HIREDIS_LIBRARY
  19 + NAMES hiredis
  20 + HINTS ${HIREDIS_ROOT_DIR}
  21 + PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR})
  22 +
  23 + set(HIREDIS_INCLUDE_DIRS ${HIREDIS_INCLUDE_DIR})
  24 + set(HIREDIS_LIBRARIES ${HIREDIS_LIBRARY})
  25 +
  26 + include (FindPackageHandleStandardArgs)
  27 + find_package_handle_standard_args(
  28 + hiredis DEFAULT_MSG HIREDIS_LIBRARY HIREDIS_INCLUDE_DIR)
  29 +
  30 + mark_as_advanced(HIREDIS_LIBRARY HIREDIS_INCLUDE_DIR)
  31 +endif()
... ...
cmake/Findlibev.cmake 0 → 100644
  1 +# Try to find libev
  2 +# Once done, this will define
  3 +#
  4 +# LIBEV_FOUND - system has libev
  5 +# LIBEV_INCLUDE_DIRS - libev include directories
  6 +# LIBEV_LIBRARIES - libraries needed to use libev
  7 +
  8 +if(LIBEV_INCLUDE_DIRS AND LIBEV_LIBRARIES)
  9 + set(LIBEV_FIND_QUIETLY TRUE)
  10 +else()
  11 + find_path(
  12 + LIBEV_INCLUDE_DIR
  13 + NAMES ev.h
  14 + HINTS ${LIBEV_ROOT_DIR}
  15 + PATH_SUFFIXES include)
  16 +
  17 + find_library(
  18 + LIBEV_LIBRARY
  19 + NAME ev
  20 + HINTS ${LIBEV_ROOT_DIR}
  21 + PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR})
  22 +
  23 + set(LIBEV_INCLUDE_DIRS ${LIBEV_INCLUDE_DIR})
  24 + set(LIBEV_LIBRARIES ${LIBEV_LIBRARY})
  25 +
  26 + include(FindPackageHandleStandardArgs)
  27 + find_package_handle_standard_args(
  28 + libev DEFAULT_MSG LIBEV_LIBRARY LIBEV_INCLUDE_DIR)
  29 +
  30 + mark_as_advanced(LIBEV_LIBRARY LIBEV_INCLUDE_DIR)
  31 +endif()
... ...