/CMakeModules/FindCLucene.cmake

http://github.com/tomahawk-player/tomahawk · CMake · 131 lines · 101 code · 15 blank · 15 comment · 0 complexity · 3f5b77a9e2abf01e5c735a63583984c4 MD5 · raw file

  1. #
  2. # This module looks for clucene (http://clucene.sf.net) support
  3. # It will define the following values
  4. #
  5. # CLUCENE_INCLUDE_DIRS = CLUCENE_INCLUDE_DIR + CLUCENE_LIBRARY_DIR
  6. # CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
  7. # CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
  8. # CLUCENE_LIBRARIES = the libraries to link against CLucene
  9. # CLUCENE_VERSION = The CLucene version string
  10. # CLucene_FOUND = set to 1 if clucene is found
  11. #
  12. INCLUDE(CheckSymbolExists)
  13. INCLUDE(FindLibraryWithDebug)
  14. # try to locate a patched unstable version (for comp's sake *sigh*) first
  15. FIND_PACKAGE(CLuceneUnstable QUIET)
  16. IF(CLUCENEUNSTABLE_FOUND)
  17. SET(CLucene_FOUND TRUE)
  18. SET(CLUCENE_INCLUDE_DIR ${CLUCENE_UNSTABLE_INCLUDE_DIRS})
  19. SET(CLUCENE_INCLUDE_DIRS ${CLUCENE_INCLUDE_DIR})
  20. SET(CLUCENE_LIBRARIES ${CLUCENE_UNSTABLE_LIBS})
  21. #MESSAGE(FATAL_ERROR NARF)
  22. ELSE(CLUCENEUNSTABLE_FOUND)
  23. IF(CLucene_FIND_VERSION)
  24. SET(CLUCENE_MIN_VERSION ${CLucene_FIND_VERSION})
  25. ELSEIF()
  26. SET(CLUCENE_MIN_VERSION "0.9.23")
  27. ENDIF(CLucene_FIND_VERSION)
  28. IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
  29. INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)
  30. ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
  31. SET(TRIAL_LIBRARY_PATHS
  32. $ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
  33. ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
  34. /usr/local/lib${LIB_SUFFIX}
  35. /usr/lib${LIB_SUFFIX}
  36. /sw/lib${LIB_SUFFIX}
  37. /usr/pkg/lib${LIB_SUFFIX}
  38. /usr/lib64
  39. )
  40. SET(TRIAL_INCLUDE_PATHS
  41. $ENV{CLUCENE_HOME}/include
  42. ${CMAKE_INSTALL_PREFIX}/include
  43. /usr/local/include
  44. /usr/include
  45. /sw/include
  46. /usr/pkg/include
  47. )
  48. FIND_LIBRARY_WITH_DEBUG(CLUCENE_CORE_LIBRARY
  49. WIN32_DEBUG_POSTFIX d
  50. NAMES clucene-core
  51. PATHS ${TRIAL_LIBRARY_PATHS})
  52. IF (CLUCENE_CORE_LIBRARY)
  53. MESSAGE(STATUS "Found CLucene core library: ${CLUCENE_CORE_LIBRARY}")
  54. ENDIF (CLUCENE_CORE_LIBRARY)
  55. FIND_LIBRARY_WITH_DEBUG(CLUCENE_SHARED_LIBRARY
  56. WIN32_DEBUG_POSTFIX d
  57. NAMES clucene-shared
  58. PATHS ${TRIAL_LIBRARY_PATHS})
  59. IF (CLUCENE_SHARED_LIBRARY)
  60. MESSAGE(STATUS "Found CLucene shared library: ${CLUCENE_SHARED_LIBRARY}")
  61. ENDIF (CLUCENE_SHARED_LIBRARY)
  62. IF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
  63. SET(CLUCENE_LIBRARIES ${CLUCENE_CORE_LIBRARY} ${CLUCENE_SHARED_LIBRARY})
  64. ENDIF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
  65. FIND_PATH(CLUCENE_INCLUDE_DIR
  66. NAMES CLucene.h
  67. PATHS ${TRIAL_INCLUDE_PATHS})
  68. IF (CLUCENE_INCLUDE_DIR)
  69. MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
  70. ENDIF (CLUCENE_INCLUDE_DIR)
  71. IF(WIN32)
  72. SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
  73. ENDIF(WIN32)
  74. SET(CLUCENE_GOOD_VERSION TRUE)
  75. FIND_PATH(CLUCENE_LIBRARY_DIR
  76. NAMES CLuceneConfig.cmake/CLuceneConfig.cmake CLucene/CLuceneConfig.cmake
  77. PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
  78. IF (CLUCENE_LIBRARY_DIR)
  79. MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
  80. # include CLuceneConfig/CLuceneConfig.cmake
  81. IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
  82. INCLUDE(${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
  83. ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
  84. # include CLucene/CLuceneConfig.cmake
  85. IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
  86. INCLUDE(${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
  87. ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
  88. IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
  89. MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
  90. SET(CLUCENE_GOOD_VERSION FALSE)
  91. ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
  92. IF (CLUCENE_VERSION STREQUAL "0.9.17")
  93. MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
  94. SET(CLUCENE_GOOD_VERSION FALSE)
  95. ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
  96. ENDIF (CLUCENE_LIBRARY_DIR)
  97. IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
  98. SET(CLucene_FOUND TRUE)
  99. SET(CLUCENE_INCLUDE_DIRS ${CLUCENE_LIBRARY_DIR} ${CLUCENE_INCLUDE_DIR})
  100. ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
  101. ENDIF(CLUCENEUNSTABLE_FOUND)
  102. IF(CLucene_FOUND)
  103. IF(NOT CLucene_FIND_QUIETLY)
  104. MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARIES} version ${CLUCENE_VERSION}")
  105. ENDIF(NOT CLucene_FIND_QUIETLY)
  106. ELSE(CLucene_FOUND)
  107. IF(CLucene_FIND_REQUIRED)
  108. MESSAGE(FATAL_ERROR "Could not find CLucene.")
  109. ENDIF(CLucene_FIND_REQUIRED)
  110. ENDIF(CLucene_FOUND)
  111. MARK_AS_ADVANCED(
  112. CLUCENE_INCLUDE_DIRS
  113. CLUCENE_INCLUDE_DIR
  114. CLUCENE_LIBRARY_DIR
  115. CLUCENE_LIBRARIES
  116. )