# Process required package by using FindPackage and calling for INCLUDE_DIRECTORIES and
# setting list of required libraries
MACRO(ProcessPackage var _name0)
- PKG_SEARCH_MODULE(${var} "${_name0}" ${ARGN})
- IF(${var}_FOUND)
- SET(WITH_${var} 1)
- IF(ENABLE_STATIC MATCHES "ON")
- SET(_XPREFIX "${var}_STATIC")
- ELSE(ENABLE_STATIC MATCHES "ON")
- SET(_XPREFIX "${var}")
- ENDIF(ENABLE_STATIC MATCHES "ON")
- FOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
- INCLUDE_DIRECTORIES("${_arg}")
- SET(${var}_INCLUDE_DIR "${_arg}")
- ENDFOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
- FOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
- LINK_DIRECTORIES("${_arg}")
- ENDFOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
- # Handle other CFLAGS and LDFLAGS
- FOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_arg}")
- ENDFOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
- FOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
- SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_arg}")
- ENDFOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
- LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "${${_XPREFIX}_LIBRARIES}")
- ELSE(${var}_FOUND)
- # Try some more heuristic
+ IF(NOT RSPAMD_SEARCH_PATH)
+ PKG_SEARCH_MODULE(${var} "${_name0}" ${ARGN})
+ IF(${var}_FOUND)
+ SET(WITH_${var} 1)
+ IF(ENABLE_STATIC MATCHES "ON")
+ SET(_XPREFIX "${var}_STATIC")
+ ELSE(ENABLE_STATIC MATCHES "ON")
+ SET(_XPREFIX "${var}")
+ ENDIF(ENABLE_STATIC MATCHES "ON")
+ FOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
+ INCLUDE_DIRECTORIES("${_arg}")
+ SET(${var}_INCLUDE_DIR "${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
+ FOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
+ LINK_DIRECTORIES("${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
+ # Handle other CFLAGS and LDFLAGS
+ FOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
+ FOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
+ LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "${${_XPREFIX}_LIBRARIES}")
+ ELSE(${var}_FOUND)
+ # Try some more heuristic
+ FIND_LIBRARY(_lib NAMES "${_name0}" ${ARGN}
+ HINTS
+ "${RSPAMD_SEARCH_PATH}"
+ PATH_SUFFIXES lib64 lib
+ PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS})
+ IF(NOT _lib)
+ MESSAGE(FATAL_ERROR "Packages ${_name0} ${ARGN} could not be found, no library")
+ ENDIF(NOT _lib)
+
+
+ FIND_PATH(_incl "${_name0}.h"
+ HINTS "${RSPAMD_SEARCH_PATH}"
+ PATH_SUFFIXES "include" "include/${_name0}" ${ARGN}
+ PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS})
+ IF(NOT _incl)
+ MESSAGE(FATAL_ERROR "Packages ${_name0} ${ARGN} could not be found, no header")
+ ENDIF(NOT _incl)
+ GET_FILENAME_COMPONENT(_lib_path "${_lib}" PATH)
+ INCLUDE_DIRECTORIES("${_incl}")
+ LINK_DIRECTORIES("${_lib_path}")
+ MESSAGE(STATUS "Found ${_name0} ${ARGN} in '${_lib_path}' (library) and '${_incl}' (include).")
+ ENDIF(${var}_FOUND)
+ ELSE(NOT RSPAMD_SEARCH_PATH)
+ # Try heuristic first
FIND_LIBRARY(_lib NAMES "${_name0}" ${ARGN}
HINTS
"${RSPAMD_SEARCH_PATH}"
PATH_SUFFIXES lib64 lib
PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS})
- IF(NOT _lib)
- MESSAGE(FATAL_ERROR "Packages ${_name0} ${ARGN} could not be found, no library")
- ENDIF(NOT _lib)
+ IF(_lib)
+ FIND_PATH(_incl "${_name0}.h"
+ HINTS "${RSPAMD_SEARCH_PATH}"
+ PATH_SUFFIXES "include" "include/${_name0}" ${ARGN}
+ PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS})
+ IF(_incl)
+ GET_FILENAME_COMPONENT(_lib_path "${_lib}" PATH)
+ INCLUDE_DIRECTORIES("${_incl}")
+ LINK_DIRECTORIES("${_lib_path}")
+ MESSAGE(STATUS "Found ${_name0} ${ARGN} in '${_lib_path}' (library) and '${_incl}' (include).")
+ ENDIF(_incl)
+ ENDIF(_lib)
-
- FIND_PATH(_incl "${_name0}.h"
- HINTS "${RSPAMD_SEARCH_PATH}"
- PATH_SUFFIXES "include" "include/${_name0}" ${ARGN}
- PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS})
- IF(NOT _incl)
- MESSAGE(FATAL_ERROR "Packages ${_name0} ${ARGN} could not be found, no header")
- ENDIF(NOT _incl)
- GET_FILENAME_COMPONENT(_lib_path "${_lib}" PATH)
- INCLUDE_DIRECTORIES("${_incl}")
- LINK_DIRECTORIES("${_lib_path}")
- MESSAGE(STATUS "Found ${_name0} ${ARGN} in '${_lib_path}' (library) and '${_incl}' (include).")
- UNSET(_lib CACHE)
- UNSET(_incl CACHE)
- ENDIF(${var}_FOUND)
+ IF(NOT _incl OR NOT _lib)
+ PKG_SEARCH_MODULE(${var} "${_name0}" ${ARGN})
+ IF(${var}_FOUND)
+ SET(WITH_${var} 1)
+ IF(ENABLE_STATIC MATCHES "ON")
+ SET(_XPREFIX "${var}_STATIC")
+ ELSE(ENABLE_STATIC MATCHES "ON")
+ SET(_XPREFIX "${var}")
+ ENDIF(ENABLE_STATIC MATCHES "ON")
+ FOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
+ INCLUDE_DIRECTORIES("${_arg}")
+ SET(${var}_INCLUDE_DIR "${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_INCLUDE_DIRS})
+ FOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
+ LINK_DIRECTORIES("${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_LIBRARY_DIRS})
+ # Handle other CFLAGS and LDFLAGS
+ FOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_CFLAGS_OTHER})
+ FOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_arg}")
+ ENDFOREACH(_arg ${${_XPREFIX}_LDFLAGS_OTHER})
+ LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "${${_XPREFIX}_LIBRARIES}")
+ ELSE(${var}_FOUND)
+ MESSAGE(FATAL_ERROR "Packages ${_name0} ${ARGN} could not be found")
+ ENDIF(${var}_FOUND)
+ ENDIF(NOT _incl OR NOT _lib)
+ ENDIF(NOT RSPAMD_SEARCH_PATH)
+ # Cleanup
+ UNSET(_lib CACHE)
+ UNSET(_incl CACHE)
ENDMACRO(ProcessPackage name)
MACRO(ADD_PRECOMPILED_HEADER _target _input)
IF(ENABLE_LUAJIT MATCHES "ON")
ProcessPackage(LUAJIT luajit)
SET(WITH_LUA 1)
+ FindLua(5 1)
+ IF(NOT LUA_FOUND)
+ MESSAGE(FATAL_ERROR "Lua not found, lua support is required for working")
+ ELSE(NOT LUA_FOUND)
+ SET(WITH_LUA 1)
+ INCLUDE_DIRECTORIES("${LUA_INCLUDE_DIR}")
+ ENDIF(NOT LUA_FOUND)
ELSE(ENABLE_LUAJIT MATCHES "ON")
FindLua(5 2)
IF(NOT LUA_FOUND)