]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
More fixes to cmake script.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 8 Jul 2015 12:41:14 +0000 (13:41 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 8 Jul 2015 12:41:14 +0000 (13:41 +0100)
CMakeLists.txt

index 84d340d13ffe95315c98cdb6150bb3518536d609..43717f3e84e594d86d80f39da4b6a2f0de319577 100644 (file)
@@ -5,6 +5,7 @@
 #
 
 ############################# INITIAL SECTION #############################################
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
 
 PROJECT(rspamd C)
 ENABLE_LANGUAGE(ASM)
@@ -24,7 +25,6 @@ ENDIF(NOT RSPAMD_USER)
 # Default for SysV Init
 SET(RSPAMD_WORKER_NORMAL "*:11333")
 SET(RSPAMD_WORKER_CONTROLLER "*:11334")
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
 SET_PROPERTY(GLOBAL PROPERTY ALLOW_DUPLICATE_CUSTOM_TARGETS 1)
 
 ############################# OPTIONS SECTION #############################################
@@ -108,7 +108,7 @@ IF(NOT SYSTEMDDIR)
 ENDIF(NOT SYSTEMDDIR)
 
 SET(RSPAMD_DEFAULT_INCLUDE_PATHS "/opt;/usr;/usr/local;/opt/local;/usr/pkg;/opt/csw;/sw")
-SET(RSPAMD_DEFAULT_LIBRARY_PATHS "/usr/local;/usr/pkg;/usr;~/Library/Frameworks;/Library/Frameworks;/sw;/opt/local;/opt/csw;/opt")
+SET(RSPAMD_DEFAULT_LIBRARY_PATHS "/usr/local;/usr/pkg;/usr;/Library/Frameworks;/sw;/opt/local;/opt/csw;/opt")
 
 ############################# INCLUDE SECTION #############################################
 
@@ -117,12 +117,12 @@ INCLUDE(CheckFunctionExists)
 INCLUDE(CheckSymbolExists)
 INCLUDE(CheckCSourceCompiles)
 INCLUDE(CheckLibraryExists)
-INCLUDE(FindPkgConfig)
 INCLUDE(CheckCCompilerFlag)
-INCLUDE(FindPerl)
-INCLUDE(FindOpenSSL)
 INCLUDE(CMakeParseArguments)
 
+FIND_PACKAGE(PkgConfig REQUIRED)
+FIND_PACKAGE(Perl REQUIRED)
+
 ############################# MACRO SECTION #############################################
 
 # Find lua installation
@@ -290,9 +290,7 @@ MACRO(ProcessPackage PKG_NAME)
        IF(NOT PKG_ROOT AND PKG_MODULES)
                PKG_SEARCH_MODULE(${PKG_NAME} ${PKG_MODULES})
        ENDIF()
-
-       MESSAGE(STATUS ${CMAKE_INCLUDE_PATH} ${CMAKE_FRAMEWORK_PATH} ${CMAKE_PREFIX_PATH} ${CMAKE_LIBRARY_ARCHITECTURE} "test")
-
+       
        IF(${PKG_NAME}_FOUND)
                MESSAGE(STATUS "Found package ${PKG_NAME} in pkg-config modules ${PKG_MODULES}")
                SET(WITH_${PKG_NAME} 1)
@@ -326,7 +324,11 @@ MACRO(ProcessPackage PKG_NAME)
                                        NO_DEFAULT_PATH
                                        PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS})
                IF(NOT _lib)
-                       MESSAGE(FATAL_ERROR "Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
+                       IF(OPTIONAL)
+                               MESSAGE("Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
+                       ELSE()
+                               MESSAGE(FATAL_ERROR "Cannot find library ${PKG_LIBRARY} for package ${PKG_NAME}")
+                       ENDIF()
                ENDIF(NOT _lib)
                
                FIND_PATH(_incl "${PKG_INCLUDE}" 
@@ -335,18 +337,27 @@ MACRO(ProcessPackage PKG_NAME)
                                                NO_DEFAULT_PATH
                                                PATHS   ${RSPAMD_DEFAULT_INCLUDE_PATHS})
                IF(NOT _incl)
-                       MESSAGE(FATAL_ERROR "Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
+                       IF(OPTIONAL)
+                               MESSAGE("Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
+                       ELSE()
+                               MESSAGE(FATAL_ERROR "Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")
+                       ENDIF()
                ENDIF(NOT _incl)
                
-               GET_FILENAME_COMPONENT(_lib_path "${_lib}" PATH)
-               INCLUDE_DIRECTORIES("${_incl}")
-               LINK_DIRECTORIES("${_lib_path}")
-               LIST(APPEND RSPAMD_REQUIRED_LIBRARIES ${_lib})
-               SET(${PKG_NAME}_INCLUDE "${_incl}")
-               SET(${PKG_NAME}_LIBRARY "${_lib_path}")
-               SET(${PKG_NAME}_FOUND 1)
-               MESSAGE(STATUS "Found package ${PKG_NAME} in '${_lib_path}' (${_lib}) and '${_incl}' (${PKG_INCLUDE}).")
+               IF(_incl AND _lib)
+                       GET_FILENAME_COMPONENT(_lib_path "${_lib}" PATH)
+                       INCLUDE_DIRECTORIES("${_incl}")
+                       LINK_DIRECTORIES("${_lib_path}")
+                       LIST(APPEND RSPAMD_REQUIRED_LIBRARIES ${_lib})
+                       SET(${PKG_NAME}_INCLUDE "${_incl}")
+                       SET(${PKG_NAME}_LIBRARY "${_lib_path}")
+                       SET(${PKG_NAME}_FOUND 1)
+                       MESSAGE(STATUS "Found package ${PKG_NAME} in '${_lib_path}' (${_lib}) and '${_incl}' (${PKG_INCLUDE}).")
+               ENDIF()
        ENDIF(${PKG_NAME}_FOUND)
+
+       UNSET(_lib CACHE)
+       UNSET(_incl CACHE)
 ENDMACRO(ProcessPackage name)
 
 MACRO(ADD_PRECOMPILED_HEADER _target _input)
@@ -435,7 +446,7 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
        ENDIF(ENABLE_LUAJIT MATCHES "ON")
        MESSAGE(STATUS "Configuring for Darwin")
        SET(TAR "gnutar")
-       SET(CMAKE_FIND_FRAMEWORK "LAST")
+       SET(CMAKE_FIND_FRAMEWORK "NEVER")
 ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
 
 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
@@ -553,6 +564,9 @@ ProcessPackage(SQLITE3 LIBRARY sqlite3 INCLUDE sqlite3.h INCLUDE_SUFFIXES includ
        ROOT ${SQLITE3_ROOT_DIR} MODULES sqlite3 sqlite)
 ProcessPackage(ICONV LIBRARY iconv libiconv libiconv-2 c INCLUDE iconv.h INCLUDE_SUFFIXES include/libiconv
        ROOT ${ICONV_ROOT_DIR} MODULES iconv)
+ProcessPackage(OPENSSL LIBRARY crypto INCLUDE opensslconf.h INCLUDE_SUFFIXES include/openssl
+       ROOT ${OPENSSL_ROOT_DIR} MODULES openssl)
+
 IF(GMIME2_VERSION VERSION_GREATER "2.4.0" OR NOT GMIME2_VERSION)
        SET(GMIME24 1)
 ENDIF()