SET(CMAKE_INSTALL_RPATH "${PREFIX}/lib")
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+# Set libdir
+IF(NOT LIBDIR)
+ SET(LIBDIR lib/rspamd)
+ IF(NOT CMAKE_INSTALL_RPATH)
+ SET(CMAKE_INSTALL_RPATH ${PREFIX}/${LIBDIR})
+ ENDIF(NOT CMAKE_INSTALL_RPATH)
+ENDIF(NOT LIBDIR)
+
+# Set includedir
+IF(NOT INCLUDEDIR)
+ SET(INCLUDEDIR include/rspamd)
+ENDIF(NOT INCLUDEDIR)
+
# Check prefixes
IF(NOT ETC_PREFIX)
IF(CMAKE_INSTALL_PREFIX)
SET_TARGET_PROPERTIES(rspamd PROPERTIES COMPILE_FLAGS "-DRSPAMD_MAIN")
SET_TARGET_PROPERTIES(rspamd PROPERTIES VERSION ${RSPAMD_VERSION})
-TARGET_LINK_LIBRARIES(rspamd rspamdserver)
+TARGET_LINK_LIBRARIES(rspamd rspamd-mime)
+TARGET_LINK_LIBRARIES(rspamd rspamd-server)
+TARGET_LINK_LIBRARIES(rspamd rspamd-util)
+TARGET_LINK_LIBRARIES(rspamd rspamd-lua)
IF(LIBJUDY_LIBRARY)
TARGET_LINK_LIBRARIES(rspamd Judy)
ENDIF(LIBJUDY_LIBRARY)
-IF(LIBDB_LIBRARY)
- TARGET_LINK_LIBRARIES(rspamd db)
-ENDIF(LIBDB_LIBRARY)
-IF(SQLITE_LIBRARIES)
- TARGET_LINK_LIBRARIES(rspamd ${SQLITE_LIBRARIES})
-ENDIF(SQLITE_LIBRARIES)
+
TARGET_LINK_LIBRARIES(rspamd event)
IF(HAVE_LIBEVENT2)
TARGET_LINK_LIBRARIES(rspamd event_pthreads)
TARGET_LINK_LIBRARIES(rspamd ${PCRE_LIBRARIES})
TARGET_LINK_LIBRARIES(rspamd ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamd ${GLIB2_LIBRARIES})
-IF(GMIME24)
- TARGET_LINK_LIBRARIES(rspamd ${GMIME24_LIBRARIES})
-ELSE(GMIME24)
- TARGET_LINK_LIBRARIES(rspamd ${GMIME2_LIBRARIES})
-ENDIF(GMIME24)
-IF(OPENSSL_FOUND)
- TARGET_LINK_LIBRARIES(rspamd ${OPENSSL_LIBRARIES})
-ENDIF(OPENSSL_FOUND)
IF(ENABLE_STATIC MATCHES "ON")
TARGET_LINK_LIBRARIES(rspamd ${PCRE_LIBRARIES})
ENDIF(ENABLE_STATIC MATCHES "ON")
-TARGET_LINK_LIBRARIES(rspamd hiredis)
-
IF(ENABLE_LUAJIT MATCHES "ON")
TARGET_LINK_LIBRARIES(rspamd "${LUAJIT_LIBRARY}")
ELSE(ENABLE_LUAJIT MATCHES "ON")
IF(ENABLE_GPERF_TOOLS MATCHES "ON")
TARGET_LINK_LIBRARIES(rspamd profiler)
ENDIF(ENABLE_GPERF_TOOLS MATCHES "ON")
-
+TARGET_LINK_LIBRARIES(rspamd hiredis)
IF(GLIB_COMPAT)
TARGET_LINK_LIBRARIES(rspamd glibadditions)
ENDIF(GLIB_COMPAT)
# Librspamdclient
-SET(LIBRSPAMDSRC client/librspamdclient.c
- ../src/mem_pool.c
- ../src/upstream.c
- ../src/printf.c)
+SET(LIBRSPAMDCLIENTSRC client/librspamdclient.c )
+
+# Librspamd-util
+SET(LIBRSPAMDUTILSRC ../src/aio_event.c
+ ../src/bloom.c
+ ../src/diff.c
+ ../src/fstring.c
+ ../src/fuzzy.c
+ ../src/hash.c
+ ../src/memcached.c
+ ../src/mem_pool.c
+ ../src/printf.c
+ ../src/radix.c
+ ../src/trie.c
+ ../src/upstream.c
+ ../src/util.c)
+
+# kvstorageclient
+
+SET(LIBRKVSTORAGESRC kvstorage/libkvstorageclient.c)
-ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDSRC})
-ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDSRC})
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
-
-IF(CMAKE_COMPILER_IS_GNUCC)
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
-SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
-ENDIF(CMAKE_COMPILER_IS_GNUCC)
-
-TARGET_LINK_LIBRARIES(rspamdclient ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamdclient pcre)
-TARGET_LINK_LIBRARIES(rspamdclient ${GLIB2_LIBRARIES})
-
-TARGET_LINK_LIBRARIES(rspamdclient_static ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(rspamdclient_static ${GLIB2_LIBRARIES})
-
-SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
-SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
-
-IF(GLIB_COMPAT)
- INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
- TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
-ENDIF(GLIB_COMPAT)
-
-INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER
- LIBRARY DESTINATION lib
- PUBLIC_HEADER DESTINATION include
- ARCHIVE DESTINATION lib)
-
-
# Librspamdserver
-SET(RSPAMDLIBSRC
- ../src/aio_event.c
+SET(LIBRSPAMDSERVERSRC
../src/binlog.c
- ../src/bloom.c
../src/buffer.c
../src/cfg_utils.c
../src/cfg_xml.c
- ../src/diff.c
../src/dkim.c
../src/dns.c
../src/events.c
- ../src/expressions.c
- ../src/filter.c
- ../src/fstring.c
- ../src/fuzzy.c
- ../src/hash.c
../src/html.c
- ../src/images.c
../src/kvstorage.c
../src/kvstorage_config.c
../src/kvstorage_file.c
../src/lmtp_proto.c
../src/logger.c
../src/map.c
- ../src/memcached.c
- ../src/mem_pool.c
- ../src/message.c
- ../src/printf.c
- ../src/protocol.c
../src/proxy.c
- ../src/radix.c
../src/settings.c
../src/spf.c
../src/smtp_proto.c
- ../src/smtp_utils.c
../src/statfile.c
../src/statfile_sync.c
../src/symbols_cache.c
- ../src/trie.c
- ../src/upstream.c
../src/url.c
- ../src/util.c
../src/view.c)
+
+# Librspamd mime
+SET(LIBRSPAMDMIMESRC
+ ../src/expressions.c
+ ../src/filter.c
+ ../src/images.c
+ ../src/message.c
+ ../src/protocol.c
+ ../src/smtp_utils.c)
+# Add targets
+
+# Rspamdutil
+ADD_LIBRARY(rspamd-util SHARED ${LIBRSPAMDUTILSRC})
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+TARGET_LINK_LIBRARIES(rspamd-util ${CMAKE_REQUIRED_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamd-util pcre)
+TARGET_LINK_LIBRARIES(rspamd-util ${GLIB2_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamd-util event)
+
+SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION})
+
+IF(GLIB_COMPAT)
+ INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
+ TARGET_LINK_LIBRARIES(rspamd-util glibadditions)
+ENDIF(GLIB_COMPAT)
+
+INSTALL(TARGETS rspamd-util
+ LIBRARY DESTINATION ${LIBDIR}
+ PUBLIC_HEADER DESTINATION include
+ ARCHIVE DESTINATION ${LIBDIR})
+
+# Rspamd client
+ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC})
+ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDCLIENTSRC})
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
+
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+TARGET_LINK_LIBRARIES(rspamdclient rspamd-util)
+
+TARGET_LINK_LIBRARIES(rspamdclient_static ${CMAKE_REQUIRED_LIBRARIES})
+TARGET_LINK_LIBRARIES(rspamdclient_static ${GLIB2_LIBRARIES})
+
+SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
+SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
+
+IF(GLIB_COMPAT)
+ INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
+ TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
+ENDIF(GLIB_COMPAT)
+
+INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER
+ LIBRARY DESTINATION ${LIBDIR}
+ PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+ ARCHIVE DESTINATION ${LIBDIR})
+
+
+# Librspamd-server
IF(WITH_DB)
- LIST(APPEND RSPAMDLIBSRC ../src/kvstorage_bdb.c)
+ LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_bdb.c)
ENDIF(WITH_DB)
IF(WITH_SQLITE)
- LIST(APPEND RSPAMDLIBSRC ../src/kvstorage_sqlite.c)
+ LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_sqlite.c)
ENDIF(WITH_SQLITE)
-ADD_LIBRARY(rspamdserver STATIC ${RSPAMDLIBSRC})
-SET_TARGET_PROPERTIES(rspamdserver PROPERTIES LINKER_LANGUAGE C)
-SET_TARGET_PROPERTIES(rspamdserver PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_lua)
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_json)
-TARGET_LINK_LIBRARIES(rspamdserver rspamd_cdb)
+ADD_LIBRARY(rspamd-server SHARED ${LIBRSPAMDSERVERSRC})
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C)
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-json)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
+TARGET_LINK_LIBRARIES(rspamd-server rspamd-util)
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+IF(WITH_DB)
+ TARGET_LINK_LIBRARIES(rspamd-server db)
+ENDIF(WITH_DB)
+IF(SQLITE_LIBRARIES)
+ TARGET_LINK_LIBRARIES(rspamd-server ${SQLITE_LIBRARIES})
+ENDIF(SQLITE_LIBRARIES)
+
+IF(OPENSSL_FOUND)
+ TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES})
+ENDIF(OPENSSL_FOUND)
+INSTALL(TARGETS rspamd-server
+ LIBRARY DESTINATION ${LIBDIR}
+ PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+ ARCHIVE DESTINATION ${LIBDIR})
+
+# Librspamdmime
+ADD_LIBRARY(rspamd-mime SHARED ${LIBRSPAMDMIMESRC})
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C)
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
+TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server)
+TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util)
+IF(CMAKE_COMPILER_IS_GNUCC)
+SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+IF(GMIME24)
+ TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME24_LIBRARIES})
+ELSE(GMIME24)
+ TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME2_LIBRARIES})
+ENDIF(GMIME24)
+
+INSTALL(TARGETS rspamd-mime
+ LIBRARY DESTINATION ${LIBDIR}
+ PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+ ARCHIVE DESTINATION ${LIBDIR})
# Libkvstorageclient
-SET(LIBRKVSTORAGESRC kvstorage/libkvstorageclient.c
- ../src/mem_pool.c
- ../src/upstream.c
- ../src/printf.c
- ../src/util.c)
ADD_LIBRARY(kvstorageclient SHARED ${LIBRKVSTORAGESRC})
ADD_LIBRARY(kvstorageclient_static STATIC ${LIBRKVSTORAGESRC})
SET_TARGET_PROPERTIES(kvstorageclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
ENDIF(CMAKE_COMPILER_IS_GNUCC)
-TARGET_LINK_LIBRARIES(kvstorageclient ${CMAKE_REQUIRED_LIBRARIES})
-TARGET_LINK_LIBRARIES(kvstorageclient pcre)
-TARGET_LINK_LIBRARIES(kvstorageclient ${GLIB2_LIBRARIES})
-TARGET_LINK_LIBRARIES(kvstorageclient event)
+TARGET_LINK_LIBRARIES(kvstorageclient rspamd-util)
TARGET_LINK_LIBRARIES(kvstorageclient_static ${CMAKE_REQUIRED_LIBRARIES})
TARGET_LINK_LIBRARIES(kvstorageclient_static ${GLIB2_LIBRARIES})
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src")
INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER
- LIBRARY DESTINATION lib
- PUBLIC_HEADER DESTINATION include
- ARCHIVE DESTINATION lib)
+ LIBRARY DESTINATION ${LIBDIR}
+ PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
+ ARCHIVE DESTINATION ${LIBDIR})