|
|
|
@ -24,6 +24,7 @@ OPTION(SKIP_RELINK_RPATH "Skip relinking and full RPATH for the install tree" |
|
|
|
OPTION(ENABLE_REDIRECTOR "Enable redirector install [default: OFF]" OFF) |
|
|
|
OPTION(ENABLE_PROFILING "Enable profiling [default: OFF]" OFF) |
|
|
|
OPTION(ENABLE_GPERF_TOOLS "Enable google perftools [default: OFF]" OFF) |
|
|
|
OPTION(ENABLE_STATIC "Enable static compiling [default: OFF]" OFF) |
|
|
|
|
|
|
|
# Build optimized code for following CPU (default i386) |
|
|
|
#SET(CPU_TUNE "i686") |
|
|
|
@ -93,7 +94,12 @@ IF(NOT LEX_EXECUTABLE OR NOT YACC_EXECUTABLE) |
|
|
|
MESSAGE(FATAL_ERROR "Error: yacc and lex are required for build") |
|
|
|
ENDIF(NOT LEX_EXECUTABLE OR NOT YACC_EXECUTABLE) |
|
|
|
|
|
|
|
pkg_check_modules(GLIB2 REQUIRED glib-2.0>=2.16 gmodule-2.0) |
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
pkg_check_modules(GLIB2 REQUIRED glib-2.0>=2.16) |
|
|
|
pkg_check_modules(PCRE REQUIRED libpcre) |
|
|
|
ELSE(ENABLE_STATIC MATCHES "ON") |
|
|
|
pkg_check_modules(GLIB2 REQUIRED glib-2.0>=2.16 gmodule-2.0) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
pkg_check_modules(GMIME2 gmime-2.0) |
|
|
|
|
|
|
|
# Try to link with gmime24 |
|
|
|
@ -111,16 +117,30 @@ ENDIF(NOT GLIB2_FOUND OR NOT GMIME2_FOUND) |
|
|
|
FOREACH(arg ${GLIB2_CFLAGS}) |
|
|
|
SET(GLIB_CFLAGS "${GLIB_CFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GLIB2_CFLAGS}) |
|
|
|
FOREACH(arg ${GLIB2_LDFLAGS}) |
|
|
|
SET(GLIB_LDFLAGS "${GLIB_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GLIB2_LDFLAGS}) |
|
|
|
|
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
FOREACH(arg ${GLIB2_STATIC_LDFLAGS}) |
|
|
|
SET(GLIB_LDFLAGS "${GLIB_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GLIB2_LDFLAGS}) |
|
|
|
ELSE(ENABLE_STATIC MATCHES "ON") |
|
|
|
FOREACH(arg ${GLIB2_LDFLAGS}) |
|
|
|
SET(GLIB_LDFLAGS "${GLIB_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GLIB2_LDFLAGS}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
# Gmime2 |
|
|
|
FOREACH(arg ${GMIME2_CFLAGS}) |
|
|
|
SET(GMIME_CFLAGS "${GMIME_CFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GMIME2_CFLAGS}) |
|
|
|
FOREACH(arg ${GMIME2_LDFLAGS}) |
|
|
|
SET(GMIME_LDFLAGS "${GMIME_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GMIME2_LDFLAGS}) |
|
|
|
|
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
FOREACH(arg ${GMIME2_STATIC_LDFLAGS}) |
|
|
|
SET(GMIME_LDFLAGS "${GMIME_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GMIME2_LDFLAGS}) |
|
|
|
ELSE(ENABLE_STATIC MATCHES "ON") |
|
|
|
FOREACH(arg ${GMIME2_LDFLAGS}) |
|
|
|
SET(GMIME_LDFLAGS "${GMIME_LDFLAGS} ${arg}") |
|
|
|
ENDFOREACH(arg ${GMIME2_LDFLAGS}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) |
|
|
|
@ -146,6 +166,12 @@ IF(ENABLE_PROFILING MATCHES "ON") |
|
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") |
|
|
|
ENDIF(ENABLE_PROFILING MATCHES "ON") |
|
|
|
|
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
SET(BUILD_STATIC 1) |
|
|
|
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") |
|
|
|
MESSAGE(STATUS "Static build of rspamd, no custom plugins support") |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
|
|
|
|
IF(ENABLE_GPERF_TOOLS MATCHES "ON") |
|
|
|
FIND_PATH(GPERF_INCLUDE google/profiler.h PATHS /opt/include |
|
|
|
/usr/include |
|
|
|
@ -494,8 +520,8 @@ IF(ENABLE_PERL MATCHES "ON") |
|
|
|
ENDIF(ENABLE_PERL MATCHES "ON") |
|
|
|
|
|
|
|
IF(ENABLE_LUA MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(rspamd "${LUA_LIBRARY}") |
|
|
|
TARGET_LINK_LIBRARIES(rspamd rspamd_lua) |
|
|
|
TARGET_LINK_LIBRARIES(rspamd "${LUA_LIBRARY}") |
|
|
|
ENDIF(ENABLE_LUA MATCHES "ON") |
|
|
|
|
|
|
|
TARGET_LINK_LIBRARIES(rspamd m) |
|
|
|
@ -507,6 +533,13 @@ TARGET_LINK_LIBRARIES(rspamd event) |
|
|
|
TARGET_LINK_LIBRARIES(rspamd rspamd_json) |
|
|
|
TARGET_LINK_LIBRARIES(rspamd ${GLIB2_LIBRARIES}) |
|
|
|
TARGET_LINK_LIBRARIES(rspamd ${GMIME2_LIBRARIES}) |
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(rspamd ${PCRE_LIBRARIES}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
TARGET_LINK_LIBRARIES(rspamd rt) |
|
|
|
TARGET_LINK_LIBRARIES(rspamd dl) |
|
|
|
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
|
|
|
|
IF(ENABLE_GPERF_TOOLS MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(rspamd profiler) |
|
|
|
@ -521,6 +554,12 @@ ENDIF(LIBUTIL_LIBRARY) |
|
|
|
TARGET_LINK_LIBRARIES(test/rspamd-test event) |
|
|
|
TARGET_LINK_LIBRARIES(test/rspamd-test ${GLIB2_LIBRARIES}) |
|
|
|
TARGET_LINK_LIBRARIES(test/rspamd-test ${GMIME2_LIBRARIES}) |
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(test/rspamd-test ${PCRE_LIBRARIES}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
TARGET_LINK_LIBRARIES(test/rspamd-test rt) |
|
|
|
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
|
|
|
|
ADD_EXECUTABLE(utils/url-extracter ${UTILSDEPENDS} ${CONTRIBSRC} ${UTILSSRC}) |
|
|
|
SET_TARGET_PROPERTIES(utils/url-extracter PROPERTIES LINKER_LANGUAGE C) |
|
|
|
@ -530,6 +569,12 @@ IF(LIBUTIL_LIBRARY) |
|
|
|
ENDIF(LIBUTIL_LIBRARY) |
|
|
|
TARGET_LINK_LIBRARIES(utils/url-extracter ${GLIB2_LIBRARIES}) |
|
|
|
TARGET_LINK_LIBRARIES(utils/url-extracter ${GMIME2_LIBRARIES}) |
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(utils/url-extracter ${PCRE_LIBRARIES}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
TARGET_LINK_LIBRARIES(utils/url-extracter rt) |
|
|
|
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
|
|
|
|
ADD_EXECUTABLE(utils/expression-parser ${UTILSDEPENDS} ${CONTRIBSRC} ${EXPRSRC}) |
|
|
|
SET_TARGET_PROPERTIES(utils/expression-parser PROPERTIES LINKER_LANGUAGE C) |
|
|
|
@ -539,6 +584,12 @@ IF(LIBUTIL_LIBRARY) |
|
|
|
ENDIF(LIBUTIL_LIBRARY) |
|
|
|
TARGET_LINK_LIBRARIES(utils/expression-parser ${GLIB2_LIBRARIES}) |
|
|
|
TARGET_LINK_LIBRARIES(utils/expression-parser ${GMIME2_LIBRARIES}) |
|
|
|
IF(ENABLE_STATIC MATCHES "ON") |
|
|
|
TARGET_LINK_LIBRARIES(utils/expression-parser ${PCRE_LIBRARIES}) |
|
|
|
ENDIF(ENABLE_STATIC MATCHES "ON") |
|
|
|
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
TARGET_LINK_LIBRARIES(utils/expression-parser rt) |
|
|
|
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
|
|
|
|
|
|
|
##################### INSTALLATION ########################################## |
|
|
|
|
|
|
|
|