mirror of
https://github.com/rspamd/rspamd.git
synced 2024-08-09 14:10:45 +02:00
79 lines
3.3 KiB
CMake
79 lines
3.3 KiB
CMake
# End of configuration
|
|
SET(LIBSTEM_ALGORITHMS danish dutch english finnish french german hungarian
|
|
italian norwegian porter portuguese romanian
|
|
russian spanish swedish turkish)
|
|
SET(KOI8_ALGORITHMS russian)
|
|
SET(ISO_8859_1_ALGORITHMS danish dutch english finnish french german italian
|
|
norwegian porter portuguese spanish swedish)
|
|
SET(ISO_8859_2_ALGORITHMS hungarian romanian)
|
|
SET(OTHER_ALGORITHMS german2 kraaij_pohlmann lovins)
|
|
SET(ALL_ALGORITHMS ${LIBSTEM_ALGORITHMS} ${OTHER_ALGORITHMS})
|
|
|
|
SET(COMPILER_SOURCES compiler/space.c
|
|
compiler/tokeniser.c
|
|
compiler/analyser.c
|
|
compiler/generator.c
|
|
compiler/driver.c
|
|
compiler/generator_java.c)
|
|
|
|
SET(SNOWBALL_RUNTIME runtime/api.c
|
|
runtime/utilities.c)
|
|
SET(LIBSTEMMER_SOURCES libstemmer/libstemmer.c)
|
|
SET(LIBSTEMMER_UTF8_SOURCES libstemmer/libstemmer_utf8.c)
|
|
#LIBSTEMMER_UTF8_SOURCES = libstemmer/libstemmer_utf8.c
|
|
#LIBSTEMMER_HEADERS = include/libstemmer.h libstemmer/modules.h libstemmer/modules_utf8.h
|
|
#LIBSTEMMER_EXTRA = libstemmer/modules.txt libstemmer/modules_utf8.txt libstemmer/libstemmer_c.in
|
|
|
|
SET(STEMWORDS_SOURCES examples/stemwords.c)
|
|
SET(MODULES_H "modules.h")
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libstemmer/libstemmer_c.in ${CMAKE_CURRENT_BINARY_DIR}/libstemmer/libstemmer.c @ONLY)
|
|
|
|
MACRO(gen_stem IN ENCODING)
|
|
FOREACH(_it ${IN})
|
|
SET(_base "${CMAKE_CURRENT_BINARY_DIR}/libstemmer/stem_${ENCODING}_${_it}")
|
|
SET(_header "${_base}.h")
|
|
SET(_source "${_base}.c")
|
|
STRING(REPLACE "UTF_8" "Unicode" _in_enc "${ENCODING}")
|
|
SET(_input "${CMAKE_CURRENT_SOURCE_DIR}/algorithms/${_it}/stem_${_in_enc}.sbl")
|
|
IF(${_in_enc} STREQUAL "Unicode" AND NOT EXISTS ${_input})
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${_source}
|
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/snowball "${CMAKE_CURRENT_SOURCE_DIR}/algorithms/${_it}/stem_ISO_8859_1.sbl" -o ${_base} -eprefix ${_it}_${ENCODING}_ -r ${CMAKE_CURRENT_SOURCE_DIR}/runtime -u
|
|
DEPENDS snowball)
|
|
LIST(APPEND STEMMER_SOURCES ${_source})
|
|
|
|
ELSE()
|
|
IF(EXISTS "${_input}")
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${_source}
|
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/snowball ${_input} -o ${_base} -eprefix ${_it}_${ENCODING}_ -r ${CMAKE_CURRENT_SOURCE_DIR}/runtime -u
|
|
DEPENDS snowball)
|
|
LIST(APPEND STEMMER_SOURCES ${_source})
|
|
ENDIF()
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
ENDMACRO()
|
|
|
|
INCLUDE_DIRECTORIES("include")
|
|
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/libstemmer")
|
|
|
|
ADD_EXECUTABLE(snowball ${COMPILER_SOURCES})
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libstemmer/modules.h
|
|
COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/libstemmer/mkmodules.pl -f ${CMAKE_CURRENT_BINARY_DIR}/libstemmer/modules.h ${CMAKE_CURRENT_BINARY_DIR}/libstemmer ${CMAKE_CURRENT_SOURCE_DIR}/libstemmer/modules.txt ${CMAKE_CURRENT_BINARY_DIR}/libstemmer/mkinc.mak)
|
|
ADD_CUSTOM_TARGET(modules DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libstemmer/modules.h")
|
|
|
|
SET(STEMMER_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/libstemmer/libstemmer.c")
|
|
ADD_CUSTOM_TARGET(stemmer_deps ALL)
|
|
ADD_DEPENDENCIES(stemmer_deps modules)
|
|
|
|
gen_stem("${LIBSTEM_ALGORITHMS}" "UTF_8")
|
|
gen_stem("${KOI8_ALGORITHMS}" "KOI8_R")
|
|
gen_stem("${ISO_8859_1_ALGORITHMS}" "ISO_8859_1")
|
|
gen_stem("${ISO_8859_2_ALGORITHMS}" "ISO_8859_2")
|
|
|
|
|
|
ADD_LIBRARY(stemmer ${LINK_TYPE} ${SNOWBALL_RUNTIME} ${STEMMER_SOURCES})
|
|
ADD_DEPENDENCIES(stemmer stemmer_deps)
|
|
|
|
ADD_EXECUTABLE(stemwords ${STEMWORDS_SOURCES})
|
|
TARGET_LINK_LIBRARIES(stemwords stemmer)
|