cmake_minimum_required(VERSION 2.6)
PROJECT(minbif)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules ${CMAKE_MODULE_PATH} )
INCLUDE(FindPkgConfig)
INCLUDE(CheckIncludeFiles)
INCLUDE(CheckLibraryExists)
if (DEBUG)
message(STATUS "Configuring for debug")
ADD_DEFINITIONS(-DDEBUG -Werror)
SET(CMAKE_BUILD_TYPE Debug)
else (DEBUG)
message(STATUS "Configuring for release")
SET(CMAKE_BUILD_TYPE Release)
endif (DEBUG)
PKG_CHECK_MODULES(PURPLE REQUIRED purple>=2.5)
IF(NOT PURPLE_FOUND)
MESSAGE(FATAL_ERROR "Please install the purple library (version >=2.5).")
ENDIF(NOT PURPLE_FOUND)
OPTION(ENABLE_MINBIF "Enable minbif compilation" ON)
IF(ENABLE_MINBIF)
PKG_CHECK_MODULES(GTHREAD REQUIRED gthread-2.0)
OPTION(ENABLE_IMLIB "Use imlib library" ON)
IF(ENABLE_IMLIB)
PKG_CHECK_MODULES(IMLIB imlib2>=1.0)
IF(IMLIB_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_IMLIB")
INCLUDE(FindX11)
IF(NOT X11_FOUND)
ADD_DEFINITIONS(-DX_DISPLAY_MISSING)
ENDIF(NOT X11_FOUND)
ELSE(IMLIB_FOUND)
MESSAGE(FATAL_ERROR "Unable to find the imlib2 library. To disable use of imlib2, run 'make ENABLE_IMLIB=OFF'")
ENDIF(IMLIB_FOUND)
ENDIF(ENABLE_IMLIB)
OPTION(ENABLE_CACA "Enable libcaca library" ON)
IF(ENABLE_CACA)
IF(NOT ENABLE_IMLIB)
MESSAGE(FATAL_ERROR "You need to enable IMLIB to enable CACA")
ENDIF(NOT ENABLE_IMLIB)
PKG_CHECK_MODULES(CACA caca>=0.99)
IF(CACA_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_CACA")
ELSE(CACA_FOUND)
MESSAGE(FATAL_ERROR "Unable to find the libcaca library. To disable caca output, run 'make ENABLE_CACA=OFF'")
ENDIF(CACA_FOUND)
PKG_CHECK_MODULES(NEWCACA caca>=0.99.beta17)
IF(NOT NEWCACA_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_OLD_CACA")
ENDIF(NOT NEWCACA_FOUND)
ENDIF(ENABLE_CACA)
OPTION(ENABLE_VIDEO "Enable video support" ON)
IF(ENABLE_VIDEO)
IF(NOT ENABLE_CACA)
MESSAGE(FATAL_ERROR "You need to enable CACA to enable VIDEO")
ENDIF(NOT ENABLE_CACA)
PKG_CHECK_MODULES(GSTREAMER gstreamer-0.10>=0.10.10 gstreamer-interfaces-0.10>=0.10)
PKG_CHECK_MODULES(FARSIGHT farsight2-0.10>=0.0.9)
PKG_CHECK_MODULES(PURPLE_26 purple>=2.6.1)
IF(GSTREAMER_FOUND AND PURPLE_26_FOUND AND FARSIGHT_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_VIDEO")
ELSE(GSTREAMER_FOUND AND PURPLE_26_FOUND AND FARSIGHT_FOUND)
MESSAGE(FATAL_ERROR "Dependencies for video were not met. Install gstreamer, farsight and libpurple>=2.6 first. Or to disable video, run 'make ENABLE_VIDEO=0'")
ENDIF(GSTREAMER_FOUND AND PURPLE_26_FOUND AND FARSIGHT_FOUND)
ENDIF(ENABLE_VIDEO)
OPTION(ENABLE_PAM "Enable PAM support" ON)
IF (ENABLE_PAM)
find_package(PAM)
IF (PAM_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_PAM")
ELSE (PAM_FOUND)
MESSAGE(FATAL_ERROR "Dependencies for PAM were not met. Install libpam-dev. Or to disable PAM support, run 'make ENABLE_PAM=0'")
ENDIF (PAM_FOUND)
ENDIF (ENABLE_PAM)
OPTION(ENABLE_TLS "Enable TLS support" ON)
IF (ENABLE_TLS)
PKG_CHECK_MODULES(GNUTLS REQUIRED "gnutls")
IF (GNUTLS_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_TLS")
ENDIF (GNUTLS_FOUND)
ENDIF (ENABLE_TLS)
SET(CONF_NAME minbif.conf)
SET(MOTD_NAME minbif.motd)
IF(NOT MAN_PREFIX)
SET(MAN_PREFIX ${CMAKE_INSTALL_PREFIX}/share/man/man8/)
ENDIF(NOT MAN_PREFIX)
IF(NOT CONF_PREFIX)
SET(CONF_PREFIX ${CMAKE_INSTALL_PREFIX}/etc/minbif)
ENDIF(NOT CONF_PREFIX)
IF(NOT DOC_PREFIX)
SET(DOC_PREFIX ${CMAKE_INSTALL_PREFIX}/share/doc/minbif)
ENDIF(NOT DOC_PREFIX)
INSTALL(FILES man/minbif.8
DESTINATION ${MAN_PREFIX})
INSTALL(FILES COPYING README
DESTINATION ${DOC_PREFIX})
INSTALL(DIRECTORY doc/
DESTINATION ${DOC_PREFIX})
INSTALL(FILES ${CONF_NAME} ${MOTD_NAME}
DESTINATION ${CONF_PREFIX})
ENDIF(ENABLE_MINBIF)
OPTION(ENABLE_PLUGIN "Enable plugin build" OFF)
IF(ENABLE_PLUGIN)
PKG_CHECK_MODULES(LIBXML REQUIRED libxml-2.0>=2.5)
ENDIF(ENABLE_PLUGIN)
INCLUDE_DIRECTORIES(${PURPLE_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${CACA_INCLUDE_DIRS} ${IMLIB_INCLUDE_DIRS} ${GSTREAMER_INCLUDE_DIRS} ${FARSIGHT_INCLUDE_DIRS} ${LIBXML_INCLUDE_DIRS} ${PAM_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIRS} "src/")
LINK_DIRECTORIES(${PURPLE_LIBRARY_DIRS} ${GTHREAD_LIBRARY_DIRS} ${CACA_LIBRARY_DIRS} ${IMLIB_LIBRARY_DIRS} ${GSTREAMER_LIBRARY_DIRS} ${FARSIGHT_LIBRARY_DIRS} ${LIBXML_LIBRARY_DIRS} ${GNUTLS_LIBRARY_DIRS})
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_REENTRANT -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Wno-unused-parameter")
SET(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
IF(ENABLE_MINBIF)
add_subdirectory(src)
ENDIF(ENABLE_MINBIF)
IF(ENABLE_PLUGIN)
add_subdirectory(plugins)
ENDIF(ENABLE_PLUGIN)
MESSAGE(STATUS "Using compiler ${CMAKE_CXX_COMPILER}")
MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")