mirror of https://gitee.com/bigwinds/arangodb
178 lines
4.7 KiB
CMake
178 lines
4.7 KiB
CMake
# - Find Snowball (libstemmer.h, stemmer.lib libstemmer.a, libstemmer.so, and libstemmer.so.0d)
|
|
# This module defines
|
|
# Snowball_INCLUDE_DIR, directory containing headers
|
|
# Snowball_LIBRARY_DIR, directory containing Snowball libraries
|
|
# Snowball_SHARED_LIB, path to stemmer.so/stemmer.dll
|
|
# Snowball_STATIC_LIB, path to stemmer.lib
|
|
# Snowball_FOUND, whether Snowball has been found
|
|
|
|
if ("${SNOWBALL_ROOT}" STREQUAL "")
|
|
set(SNOWBALL_ROOT "$ENV{SNOWBALL_ROOT}")
|
|
if (NOT "${SNOWBALL_ROOT}" STREQUAL "")
|
|
string(REPLACE "\"" "" SNOWBALL_ROOT ${SNOWBALL_ROOT})
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT "${SNOWBALL_ROOT}" STREQUAL "")
|
|
set(Snowball_SEARCH_HEADER_PATHS
|
|
${SNOWBALL_ROOT}/include
|
|
${SNOWBALL_ROOT}/include/libstemmer
|
|
)
|
|
|
|
set(Snowball_SEARCH_LIB_PATHS
|
|
${SNOWBALL_ROOT}/lib
|
|
${SNOWBALL_ROOT}/build
|
|
${SNOWBALL_ROOT}/Release
|
|
${SNOWBALL_ROOT}/build/Release
|
|
${SNOWBALL_ROOT}/Debug
|
|
${SNOWBALL_ROOT}/build/Debug
|
|
)
|
|
|
|
set(Snowball_SEARCH_SRC_PATHS
|
|
${SNOWBALL_ROOT}
|
|
${SNOWBALL_ROOT}/libstemmer
|
|
${SNOWBALL_ROOT}/libstemmer/libstemmer
|
|
${SNOWBALL_ROOT}/src
|
|
${SNOWBALL_ROOT}/src/libstemmer
|
|
${SNOWBALL_ROOT}/src/libstemmer/libstemmer
|
|
)
|
|
elseif (NOT MSVC)
|
|
set(Snowball_SEARCH_HEADER_PATHS
|
|
"/usr/include"
|
|
"/usr/include/libstemmer"
|
|
"/usr/include/x86_64-linux-gnu"
|
|
"/usr/include/x86_64-linux-gnu/libstemmer"
|
|
)
|
|
|
|
set(Snowball_SEARCH_LIB_PATHS
|
|
"/lib"
|
|
"/lib/x86_64-linux-gnu"
|
|
"/usr/lib"
|
|
"/usr/lib/x86_64-linux-gnu"
|
|
)
|
|
|
|
set(Snowball_SEARCH_SRC_PATHS
|
|
"/usr/src"
|
|
"/usr/src/libstemmer"
|
|
"/usr/src/libstemmer/libstemmer"
|
|
)
|
|
endif()
|
|
|
|
find_path(Snowball_INCLUDE_DIR
|
|
libstemmer.h
|
|
PATHS ${Snowball_SEARCH_HEADER_PATHS}
|
|
NO_DEFAULT_PATH # make sure we don't accidentally pick up a different version
|
|
)
|
|
|
|
find_path(Snowball_SRC_DIR_LIBSTEMMER
|
|
libstemmer_c.in
|
|
PATHS ${Snowball_SEARCH_SRC_PATHS}
|
|
NO_DEFAULT_PATH # make sure we don't accidentally pick up a different version
|
|
)
|
|
|
|
# found the cmake enabled source directory
|
|
if (Snowball_INCLUDE_DIR AND Snowball_SRC_DIR_LIBSTEMMER)# AND Snowball_SRC_DIR_CMAKE)
|
|
set(Snowball_FOUND TRUE)
|
|
get_filename_component(Snowball_SRC_DIR_PARENT ${Snowball_SRC_DIR_LIBSTEMMER} DIRECTORY)
|
|
set(STEMMER_SOURCE_DIR ${Snowball_SRC_DIR_PARENT})
|
|
add_subdirectory(
|
|
${PROJECT_SOURCE_DIR}/external/snowball
|
|
EXCLUDE_FROM_ALL # do not build unused targets
|
|
)
|
|
set(Snowball_LIBRARY_DIR ${Snowball_SEARCH_LIB_PATHS})
|
|
set(Snowball_SHARED_LIB stemmer-shared)
|
|
set(Snowball_STATIC_LIB stemmer-static)
|
|
|
|
return()
|
|
endif()
|
|
|
|
include(Utils)
|
|
|
|
# set options for: shared
|
|
if (MSVC)
|
|
set(Snowball_LIBRARY_PREFIX "")
|
|
set(Snowball_LIBRARY_SUFFIX ".lib")
|
|
elseif(APPLE)
|
|
set(Snowball_LIBRARY_PREFIX "lib")
|
|
set(Snowball_LIBRARY_SUFFIX ".dylib")
|
|
else()
|
|
set(Snowball_LIBRARY_PREFIX "lib")
|
|
set(Snowball_LIBRARY_SUFFIX ".so")
|
|
endif()
|
|
set_find_library_options("${Snowball_LIBRARY_PREFIX}" "${Snowball_LIBRARY_SUFFIX}")
|
|
|
|
# find library
|
|
find_library(Snowball_SHARED_LIB
|
|
NAMES stemmer
|
|
PATHS ${Snowball_SEARCH_LIB_PATHS}
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
# restore initial options
|
|
restore_find_library_options()
|
|
|
|
|
|
# set options for: static
|
|
if (MSVC)
|
|
set(Snowball_LIBRARY_PREFIX "")
|
|
set(Snowball_LIBRARY_SUFFIX ".lib")
|
|
else()
|
|
set(Snowball_LIBRARY_PREFIX "lib")
|
|
set(Snowball_LIBRARY_SUFFIX ".a")
|
|
endif()
|
|
set_find_library_options("${Snowball_LIBRARY_PREFIX}" "${Snowball_LIBRARY_SUFFIX}")
|
|
|
|
# find library
|
|
find_library(Snowball_STATIC_LIB
|
|
NAMES stemmer
|
|
PATHS ${Snowball_SEARCH_LIB_PATHS}
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
# restore initial options
|
|
restore_find_library_options()
|
|
|
|
|
|
if (Snowball_INCLUDE_DIR AND Snowball_SHARED_LIB AND Snowball_STATIC_LIB)
|
|
set(Snowball_FOUND TRUE)
|
|
set(Snowball_LIBRARY_DIR
|
|
"${Snowball_SEARCH_LIB_PATHS}"
|
|
CACHE PATH
|
|
"Directory containing Snowball libraries"
|
|
FORCE
|
|
)
|
|
|
|
add_library(stemmer-shared IMPORTED SHARED)
|
|
set_target_properties(stemmer-shared PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${Snowball_INCLUDE_DIR}"
|
|
IMPORTED_LOCATION "${Snowball_SHARED_LIB}"
|
|
)
|
|
|
|
add_library(stemmer-static IMPORTED STATIC)
|
|
set_target_properties(stemmer-static PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${Snowball_INCLUDE_DIR}"
|
|
IMPORTED_LOCATION "${Snowball_STATIC_LIB}"
|
|
)
|
|
else ()
|
|
set(Snowball_FOUND FALSE)
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Snowball
|
|
DEFAULT_MSG
|
|
Snowball_INCLUDE_DIR
|
|
Snowball_SHARED_LIB
|
|
Snowball_STATIC_LIB
|
|
)
|
|
message("Snowball_INCLUDE_DIR: " ${Snowball_INCLUDE_DIR})
|
|
message("Snowball_LIBRARY_DIR: " ${Snowball_LIBRARY_DIR})
|
|
message("Snowball_SHARED_LIB: " ${Snowball_SHARED_LIB})
|
|
message("Snowball_STATIC_LIB: " ${Snowball_STATIC_LIB})
|
|
|
|
mark_as_advanced(
|
|
Snowball_INCLUDE_DIR
|
|
Snowball_LIBRARY_DIR
|
|
Snowball_SHARED_LIB
|
|
Snowball_STATIC_LIB
|
|
)
|