2
# SOURCE: http://websvn.kde.org/trunk/kdesupport/strigi/cmake/FindCLucene.cmake?view=log
4
# ONE FIX: /usr/lib64 added to work on Fedora
9
# This module looks for clucene (http://clucene.sf.net) support
10
# It will define the following values
12
# CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
13
# CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
14
# CLUCENE_LIBRARY = the library to link against CLucene
15
# CLUCENE_VERSION = The CLucene version string
16
# CLucene_FOUND = set to 1 if clucene is found
19
INCLUDE(CheckSymbolExists)
20
INCLUDE(FindLibraryWithDebug)
22
if(NOT CLUCENE_MIN_VERSION)
23
set(CLUCENE_MIN_VERSION "0.9.19")
24
endif(NOT CLUCENE_MIN_VERSION)
26
IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
27
INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)
28
ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
31
IF(CMAKE_BUILD_TYPE STREQUAL "Release")
32
SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core/src/CLucene/Release)
33
ELSE(CMAKE_BUILD_TYPE STREQUAL "Release")
34
SET(WIN_CLUCENE_SEARCH_PATH ../clucene-core/src/CLucene/debug)
35
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Release")
36
SET(WIN_CLUCENE_INCLUDE_PATH ../clucene-core/src)
38
SET(WIN_CLUCENE_SEARCH_PATH "")
39
SET(WIN_CLUCENE_INCLUDE_PATH "")
42
SET(TRIAL_LIBRARY_PATHS
43
$ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
44
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
45
/usr/local/lib${LIB_SUFFIX}
46
/opt/local/lib${LIB_SUFFIX}
50
/usr/pkg/lib${LIB_SUFFIX}
51
${WIN_CLUCENE_SEARCH_PATH}
53
SET(TRIAL_INCLUDE_PATHS
54
$ENV{CLUCENE_HOME}/include
55
${CMAKE_INSTALL_PREFIX}/include
60
${WIN_CLUCENE_INCLUDE_PATH}
62
FIND_LIBRARY_WITH_DEBUG(CLUCENE_LIBRARY
63
NAMES clucene clucene-core
64
PATHS ${TRIAL_LIBRARY_PATHS})
66
MESSAGE(STATUS "Found CLucene library: ${CLUCENE_LIBRARY}")
67
ENDIF (CLUCENE_LIBRARY)
68
FIND_PATH(CLUCENE_INCLUDE_DIR
70
PATHS ${TRIAL_INCLUDE_PATHS})
72
IF (CLUCENE_INCLUDE_DIR)
73
MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
74
ENDIF (CLUCENE_INCLUDE_DIR)
77
SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
80
SET(CLUCENE_GOOD_VERSION TRUE)
82
FIND_PATH(CLUCENE_LIBRARY_DIR
83
NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
84
IF (CLUCENE_LIBRARY_DIR)
85
MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
86
FILE(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT)
87
STRING(REGEX MATCH "_CL_VERSION +\".*\"" CLMATCH ${CLCONTENT})
89
STRING(REGEX REPLACE "_CL_VERSION +\"(.*)\"" "\\1" CLUCENE_VERSION ${CLMATCH})
90
IF (CLUCENE_VERSION VERSION_LESS "${CLUCENE_MIN_VERSION}")
91
MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
92
SET(CLUCENE_GOOD_VERSION FALSE)
93
ENDIF (CLUCENE_VERSION VERSION_LESS "${CLUCENE_MIN_VERSION}")
94
IF (CLUCENE_VERSION STREQUAL "0.9.17")
95
MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
96
SET(CLUCENE_GOOD_VERSION FALSE)
97
ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
98
IF (CLUCENE_VERSION VERSION_GREATER "2.0.0")
99
ADD_DEFINITIONS(-DCLUCENE2)
100
FIND_LIBRARY_WITH_DEBUG(CLUCENE_SHARED_LIB
102
PATHS ${TRIAL_LIBRARY_PATHS})
104
IF (CLUCENE_SHARED_LIB)
105
MESSAGE(STATUS "Found CLucene shared library: ${CLUCENE_SHARED_LIB}")
106
SET(CLUCENE_LIBRARY ${CLUCENE_LIBRARY} ${CLUCENE_SHARED_LIB})
107
ELSE (CLUCENE_SHARED_LIB)
108
MESSAGE(FATAL_ERROR "Unable to find CLucene shared library.")
109
SET(CLUCENE_GOOD_VERSION FALSE)
110
ENDIF(CLUCENE_SHARED_LIB)
111
ENDIF (CLUCENE_VERSION VERSION_GREATER "2.0.0")
113
ELSE (CLUCENE_LIBRARY_DIR)
114
MESSAGE(STATUS "CLucene library dir not found.")
115
ENDIF (CLUCENE_LIBRARY_DIR)
117
IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
118
SET(CLucene_FOUND TRUE)
119
ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
122
IF(NOT CLucene_FIND_QUIETLY)
123
MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARY}")
124
ENDIF(NOT CLucene_FIND_QUIETLY)
126
IF(CLucene_FIND_REQUIRED)
127
MESSAGE(FATAL_ERROR "Could not find CLucene.")
128
ENDIF(CLucene_FIND_REQUIRED)