Переглянути джерело

Adopt for the new ProcessPackage.

tags/1.0.0
Vsevolod Stakhov 9 роки тому
джерело
коміт
a9c1d1ada6
1 змінених файлів з 27 додано та 42 видалено
  1. 27
    42
      CMakeLists.txt

+ 27
- 42
CMakeLists.txt Переглянути файл

@@ -276,10 +276,8 @@ ENDFUNCTION(INSTALL_IF_NOT_EXISTS)
# LIB_SUFFIXES - list of library suffixes
# MODULES - modules to search using pkg_config
MACRO(ProcessPackage PKG_NAME)

CMAKE_PARSE_ARGUMENTS(PKG "OPTIONAL" "ROOT;INCLUDE;LIBRARY" "INCLUDE_SUFFIXES;LIB_SUFFIXES;MODULES" ${ARGN})
IF(NOT PKG_NAME)
MESSAGE(FATAL_ERROR "No package name specified")
ENDIF()
IF(NOT PKG_LIBRARY)
SET(PKG_LIBRARY "${PKG_NAME}")
ENDIF()
@@ -292,6 +290,7 @@ MACRO(ProcessPackage PKG_NAME)
ENDIF()

IF(${PKG_NAME}_FOUND)
MESSAGE(STATUS "Found package ${PKG_NAME} in pkg-config modules ${PKG_MODULES}")
SET(WITH_${PKG_NAME} 1)
IF(ENABLE_STATIC MATCHES "ON")
SET(_XPREFIX "${PKG_NAME}_STATIC")
@@ -300,11 +299,11 @@ MACRO(ProcessPackage PKG_NAME)
ENDIF(ENABLE_STATIC MATCHES "ON")
FOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
INCLUDE_DIRECTORIES("${_arg}")
SET(${var}_INCLUDE "${_arg}")
SET(${PKG_NAME}_INCLUDE "${_arg}")
ENDFOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
FOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
LINK_DIRECTORIES("${_arg}")
SET(${var}_LIBRARY "${_arg}")
SET(${PKG_NAME}_LIBRARY "${_arg}")
ENDFOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
# Handle other CFLAGS and LDFLAGS
FOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
@@ -314,6 +313,7 @@ MACRO(ProcessPackage PKG_NAME)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_arg}")
ENDFOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "${${_XPREFIX}_LIBRARIES}")
INCLUDE_DIRECTORIES(${${_XPREFIX}_INCLUDEDIR})
ELSE()
# Try some more heuristic
FIND_LIBRARY(_lib NAMES ${PKG_LIBRARY}
@@ -337,9 +337,9 @@ MACRO(ProcessPackage PKG_NAME)
INCLUDE_DIRECTORIES("${_incl}")
LINK_DIRECTORIES("${_lib_path}")
LIST(APPEND RSPAMD_REQUIRED_LIBRARIES ${_lib})
SET(${var}_INCLUDE "${_incl}")
SET(${var}_LIBRARY "${_lib_path}")
MESSAGE(STATUS "Found ${_name0} ${ARGN} in '${_lib_path}' (library) and '${_incl}' (include).")
SET(${PKG_NAME}_INCLUDE "${_incl}")
SET(${PKG_NAME}_LIBRARY "${_lib_path}")
MESSAGE(STATUS "Found ${PKG_NAME} in '${_lib_path}' (library) and '${_incl}' (include).")
ENDIF(${PKG_NAME}_FOUND)
ENDMACRO(ProcessPackage name)

@@ -544,15 +544,20 @@ IF(OPENSSL_FOUND)
INCLUDE_DIRECTORIES("${OPENSSL_INCLUDE_DIR}")
ENDIF(OPENSSL_FOUND)

ProcessPackage(GLIB2 glib-2.0>=2.28)
ProcessPackage(GTHREAD gthread-2.0)
ProcessPackage(PCRE pcre libpcre pcre3 libpcre3)
ProcessPackage(GMIME2 gmime-2.6 gmime-2.4 gmime-2.0)
ProcessPackage(LIBEVENT event libevent)
ProcessPackage(SQLITE sqlite3 sqlite)
IF(GMIME2_VERSION VERSION_GREATER "2.4.0")
ProcessPackage(GLIB2 LIBRARY glib-2.0 INCLUDE glib.h INCLUDE_SUFFIXES include/glib
ROOT ${GLIB_ROOT} MODULES glib-2.0>=2.28)
ProcessPackage(PCRE LIBRARY pcre INCLUDE pcre.h INCLUDE_SUFFIXES include/pcre
ROOT ${PCRE_ROOT} MODULES pcre libpcre pcre3 libpcre3)
ProcessPackage(GMIME LIBRARY gmime-2.4 INCLUDE gmime.h INCLUDE_SUFFIXES include/gmime
ROOT ${GMIME_ROOT} MODULES gmime-2.6 gmime-2.4 gmime-2.0)
ProcessPackage(LIBEVENT LIBRARY event INCLUDE event.h INCLUDE_SUFFIXES include/event
ROOT ${EVENT_ROOT} MODULES event libevent)
ProcessPackage(SQLITE3 LIBRARY sqlite3 INCLUDE sqlite3.h INCLUDE_SUFFIXES include/sqlite3 include/sqlite
ROOT ${SQLITE3_ROOT} MODULES sqlite3 sqlite)
IF(GMIME2_VERSION VERSION_GREATER "2.4.0" OR NOT GMIME2_VERSION)
SET(GMIME24 1)
ENDIF(GMIME2_VERSION VERSION_GREATER "2.4.0")
ENDIF()

LIST(APPEND CMAKE_REQUIRED_INCLUDES "${PCRE_INCLUDE}")
IF(PCRE_LIBRARY)
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};-L${PCRE_LIBRARY};-lpcre")
@@ -561,38 +566,17 @@ ELSE(PCRE_LIBRARY)
ENDIF(PCRE_LIBRARY)
# Libhiredis pc file is so special
IF(ENABLE_HIREDIS MATCHES "ON")
ProcessPackage(HIREDIS hiredis libhiredis)
ProcessPackage(HIREDIS LIBRARY hiredis INCLUDE hiredis.h INCLUDE_SUFFIXES include/hiredis
ROOT ${HIREDIS_ROOT} MODULES hiredis libhiredis)
SET(WITH_HIREDIS 1)
FIND_PATH(LIBHIREDIS_INCLUDE hiredis.h
HINTS "${RSPAMD_SEARCH_PATH}"
PATH_SUFFIXES "include" "include/hiredis"
PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
DOC "Path where the hiredis header files can be found")

IF(LIBHIREDIS_INCLUDE)
INCLUDE_DIRECTORIES("${LIBHIREDIS_INCLUDE}")
ENDIF(LIBHIREDIS_INCLUDE)
ENDIF(ENABLE_HIREDIS MATCHES "ON")


# Google performance tools

IF(ENABLE_GPERF_TOOLS MATCHES "ON")
FIND_PATH(GPERF_INCLUDE google/profiler.h
PATH_SUFFIXES "include" "include/google"
PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
DOC "Path where google perftools includes can be found")
INCLUDE_DIRECTORIES("${GPERF_INCLUDE}")
FIND_LIBRARY(GPERF_LIBRARY NAMES profiler
HINTS "${RSPAMD_SEARCH_PATH}"
PATH_SUFFIXES lib64 lib "lib/google"
PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS}
DOC "Path where the gperf library can be found")
IF(NOT GPERF_LIBRARY)
MESSAGE(FATAL_ERROR "gperf tools support is enabled but not found in system")
ENDIF(NOT GPERF_LIBRARY)
GET_FILENAME_COMPONENT(GPERF_PATH "${GPERF_LIBRARY}" PATH)
LINK_DIRECTORIES("${GPERF_PATH}")
ProcessPackage(GPERF LIBRARY profiler INCLUDE profiler.h INCLUDE_SUFFIXES include/google
ROOT ${GPERF_ROOT})
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer")
SET(WITH_GPERF_TOOLS 1)
ENDIF(ENABLE_GPERF_TOOLS MATCHES "ON")
@@ -932,7 +916,8 @@ IF(ENABLE_URL_INCLUDE MATCHES "ON")
DOC "Path to libfetch header")
ELSE(LIBFETCH_LIBRARY)
# Try to find libcurl
ProcessPackage(CURL libcurl)
ProcessPackage(CURL LIBRARY curl INCLUDE curl.h INCLUDE_SUFFIXES include/curl
ROOT ${CURL_ROOT})
IF(NOT CURL_FOUND)
MESSAGE(WARNING "Neither libcurl nor libfetch were found, no support of URL includes in configuration")
ENDIF(NOT CURL_FOUND)

Завантаження…
Відмінити
Зберегти