PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/rel-2-3-rc1/bibletime/cmake/FindCLucene.cmake

#
CMake | 121 lines | 92 code | 14 blank | 15 comment | 1 complexity | 50e10482cb1b3c8b4c9106c9bd91f1bb MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0
  1. #
  2. # SOURCE: http://websvn.kde.org/trunk/kdesupport/strigi/cmake/FindCLucene.cmake?view=log
  3. #
  4. # ONE FIX: /usr/lib64 added to work on Fedora
  5. #
  6. #
  7. # This module looks for clucene (http://clucene.sf.net) support
  8. # It will define the following values
  9. #
  10. # CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
  11. # CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
  12. # CLUCENE_LIBRARY = the library to link against CLucene
  13. # CLUCENE_VERSION = The CLucene version string
  14. # CLucene_FOUND = set to 1 if clucene is found
  15. #
  16. INCLUDE(CheckSymbolExists)
  17. INCLUDE(FindLibraryWithDebug)
  18. if(NOT CLUCENE_MIN_VERSION)
  19. set(CLUCENE_MIN_VERSION "0.9.19")
  20. endif(NOT CLUCENE_MIN_VERSION)
  21. IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
  22. INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)
  23. ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
  24. IF(MSVC)
  25. IF(CMAKE_BUILD_TYPE STREQUAL "Release")
  26. SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core/src/CLucene/Release)
  27. ELSE(CMAKE_BUILD_TYPE STREQUAL "Release")
  28. SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core/src/CLucene/debug)
  29. ENDIF(CMAKE_BUILD_TYPE STREQUAL "Release")
  30. SET(WIN_CLUCENE_INCLUDE_PATH ../clucene-core/src)
  31. ELSE(MSVC)
  32. SET(WIN_CLUCENE_SEARCH_PATH "")
  33. SET(WIN_CLUCENE_INCLUDE_PATH "")
  34. ENDIF(MSVC)
  35. SET(TRIAL_LIBRARY_PATHS
  36. $ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
  37. ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
  38. /usr/local/lib${LIB_SUFFIX}
  39. /opt/local/lib${LIB_SUFFIX}
  40. /usr/lib${LIB_SUFFIX}
  41. /usr/lib64
  42. /sw/lib${LIB_SUFFIX}
  43. /usr/pkg/lib${LIB_SUFFIX}
  44. ${WIN_CLUCENE_SEARCH_PATH}
  45. )
  46. SET(TRIAL_INCLUDE_PATHS
  47. $ENV{CLUCENE_HOME}/include
  48. ${CMAKE_INSTALL_PREFIX}/include
  49. /usr/local/include
  50. /usr/include
  51. /sw/include
  52. /usr/pkg/include
  53. ${WIN_CLUCENE_INCLUDE_PATH}
  54. )
  55. FIND_LIBRARY_WITH_DEBUG(CLUCENE_LIBRARY
  56. NAMES clucene clucene-core
  57. PATHS ${TRIAL_LIBRARY_PATHS})
  58. IF (CLUCENE_LIBRARY)
  59. MESSAGE(STATUS "Found CLucene library: ${CLUCENE_LIBRARY}")
  60. ENDIF (CLUCENE_LIBRARY)
  61. FIND_PATH(CLUCENE_INCLUDE_DIR
  62. NAMES CLucene.h
  63. PATHS ${TRIAL_INCLUDE_PATHS})
  64. IF (CLUCENE_INCLUDE_DIR)
  65. MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
  66. ENDIF (CLUCENE_INCLUDE_DIR)
  67. IF(WIN32)
  68. SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
  69. ENDIF(WIN32)
  70. SET(CLUCENE_GOOD_VERSION TRUE)
  71. FIND_PATH(CLUCENE_LIBRARY_DIR
  72. NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
  73. IF (CLUCENE_LIBRARY_DIR)
  74. MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
  75. FILE(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT)
  76. STRING(REGEX MATCH "_CL_VERSION +\".*\"" CLMATCH ${CLCONTENT})
  77. IF (CLMATCH)
  78. STRING(REGEX REPLACE "_CL_VERSION +\"(.*)\"" "\\1" CLUCENE_VERSION ${CLMATCH})
  79. IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
  80. MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
  81. SET(CLUCENE_GOOD_VERSION FALSE)
  82. ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
  83. IF (CLUCENE_VERSION STREQUAL "0.9.17")
  84. MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
  85. SET(CLUCENE_GOOD_VERSION FALSE)
  86. ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
  87. ENDIF (CLMATCH)
  88. ELSE (CLUCENE_LIBRARY_DIR)
  89. MESSAGE(STATUS "CLucene library dir not found.")
  90. ENDIF (CLUCENE_LIBRARY_DIR)
  91. IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
  92. SET(CLucene_FOUND TRUE)
  93. ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
  94. IF(CLucene_FOUND)
  95. IF(NOT CLucene_FIND_QUIETLY)
  96. MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARY}")
  97. ENDIF(NOT CLucene_FIND_QUIETLY)
  98. ELSE(CLucene_FOUND)
  99. IF(CLucene_FIND_REQUIRED)
  100. MESSAGE(FATAL_ERROR "Could not find CLucene.")
  101. ENDIF(CLucene_FIND_REQUIRED)
  102. ENDIF(CLucene_FOUND)
  103. MARK_AS_ADVANCED(
  104. CLUCENE_INCLUDE_DIR
  105. CLUCENE_LIBRARY_DIR
  106. CLUCENE_LIBRARY
  107. )