FindHIREDIS.cmake 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. ################################################################################
  2. # HPCC SYSTEMS software Copyright (C) 2015 HPCC Systems®.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. ################################################################################
  16. # - Try to find the hiredis library
  17. # Once done this will define
  18. #
  19. # HIREDIS_FOUND - system has the hiredis library
  20. # HIREDIS_INCLUDE_DIR - the hiredis include directory(s)
  21. # HIREDIS_LIBRARY - The library needed to use hiredis
  22. IF (NOT HIREDIS_FOUND)
  23. IF (WIN32)
  24. SET (libhiredis "libhiredis")
  25. ELSE()
  26. SET (libhiredis "hiredis")
  27. ENDIF()
  28. FIND_PATH(HIREDIS_INCLUDE_DIR hiredis/hiredis.h PATHS /usr/include /usr/share/include /usr/local/include PATH_SUFFIXES hiredis)
  29. FIND_LIBRARY(HIREDIS_LIBRARY NAMES ${libhiredis} PATHS /usr/lib /usr/share /usr/lib64 /usr/local/lib /usr/local/lib64)
  30. IF(HIREDIS_INCLUDE_DIR)
  31. #MAJOR
  32. FILE (STRINGS "${HIREDIS_INCLUDE_DIR}/hiredis/hiredis.h" major REGEX "#define HIREDIS_MAJOR")
  33. STRING(REGEX REPLACE "#define HIREDIS_MAJOR " "" major "${major}")
  34. STRING(REGEX REPLACE "\"" "" major "${major}")
  35. #MINOR
  36. FILE (STRINGS "${HIREDIS_INCLUDE_DIR}/hiredis/hiredis.h" minor REGEX "#define HIREDIS_MINOR")
  37. STRING(REGEX REPLACE "#define HIREDIS_MINOR " "" minor "${minor}")
  38. STRING(REGEX REPLACE "\"" "" minor "${minor}")
  39. #PATCH
  40. FILE (STRINGS "${HIREDIS_INCLUDE_DIR}/hiredis/hiredis.h" patch REGEX "#define HIREDIS_PATCH")
  41. STRING(REGEX REPLACE "#define HIREDIS_PATCH " "" patch "${patch}")
  42. STRING(REGEX REPLACE "\"" "" patch "${patch}")
  43. SET(HIREDIS_VERSION_STRING "${major}.${minor}.${patch}")
  44. IF ("${HIREDIS_VERSION_STRING}" VERSION_LESS "${HIREDIS_FIND_VERSION}")
  45. MESSAGE("WARNING - connection caching not avaliable with libhiredis version '${HIREDIS_VERSION_STRING}' as incompatible with min version>=${HIREDIS_FIND_VERSION}")
  46. ENDIF()
  47. ENDIF()
  48. include(FindPackageHandleStandardArgs)
  49. find_package_handle_standard_args(hiredis DEFAULT_MSG
  50. HIREDIS_LIBRARY
  51. HIREDIS_INCLUDE_DIR
  52. )
  53. MARK_AS_ADVANCED(HIREDIS_INCLUDE_DIR HIREDIS_LIBRARY)
  54. ENDIF()