diff --git a/CMakeLists.txt b/CMakeLists.txt index 502561ef..24a5a553 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,9 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.4) # Don't do automatic escaping of variables CMAKE_POLICY(SET CMP0005 OLD) +# Add path for additional FindXXX.cmake scenarios +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) + PROJECT (SEMS) SET(SEMS_MAJOR_VERSION 1) @@ -74,38 +77,18 @@ SET(CMAKE_VERBOSE_MAKEFILE ON) # will not work with spandsp 0.0.2 . # (which means that current debian and gentoo packages don't work) IF(SEMS_USE_SPANDSP) - FIND_LIBRARY(SPANDSP_LIBRARIES NAMES spandsp) - FIND_PATH(SPANDSP_INCLUDE_DIR spandsp.h) - IF(SPANDSP_INCLUDE_DIR AND SPANDSP_LIBRARIES) - SET(SPANDSP_FOUND TRUE) - MESSAGE(STATUS "Found spandsp includes: ${SPANDSP_INCLUDE_DIR}/spandsp.h") - MESSAGE(STATUS "Found spandsp library: ${SPANDSP_LIBRARIES}") - MESSAGE(STATUS "Using spandsp: YES") - ELSE(SPANDSP_INCLUDE_DIR AND SPANDSP_LIBRARIES) - SET(SPANDSP_FOUND FALSE) - MESSAGE(FATAL_ERROR "Could NOT find spandsp development files") - ENDIF(SPANDSP_INCLUDE_DIR AND SPANDSP_LIBRARIES) + FIND_PACKAGE(Spandsp REQUIRED) + MESSAGE(STATUS "Using spandsp: YES") ELSE(SEMS_USE_SPANDSP) - SET(SPANDSP_FOUND FALSE) MESSAGE(STATUS "Using spandsp: NO (default)") ENDIF(SEMS_USE_SPANDSP) # compile with sample rate conversion from secret rabbit code? # (see http://www.mega-nerd.com/SRC/) IF(SEMS_USE_LIBSAMPLERATE) - FIND_LIBRARY(LIBSAMPLERATE_LIBRARIES NAMES samplerate) - FIND_PATH(LIBSAMPLERATE_INCLUDE_DIR samplerate.h) - IF(LIBSAMPLERATE_INCLUDE_DIR AND LIBSAMPLERATE_LIBRARIES) - SET(LIBSAMPLERATE_FOUND TRUE) - MESSAGE(STATUS "Found libsamplerate includes: ${LIBSAMPLERATE_INCLUDE_DIR}/samplerate.h") - MESSAGE(STATUS "Found libsamplerate library: ${LIBSAMPLERATE_LIBRARIES}") - MESSAGE(STATUS "Using libsamplerate: YES") - ELSE(LIBSAMPLERATE_INCLUDE_DIR AND LIBSAMPLERATE_LIBRARIES) - SET(LIBSAMPLERATE_FOUND FALSE) - MESSAGE(FATAL_ERROR "Could NOT find libsamplerate development files") - ENDIF(LIBSAMPLERATE_INCLUDE_DIR AND LIBSAMPLERATE_LIBRARIES) + FIND_PACKAGE(Libsamplerate REQUIRED) + MESSAGE(STATUS "Using libsamplerate: YES") ELSE(SEMS_USE_LIBSAMPLERATE) - SET(LIBSAMPLERATE_FOUND FALSE) MESSAGE(STATUS "Using libsamplerate: NO (default)") ENDIF(SEMS_USE_LIBSAMPLERATE) @@ -122,19 +105,9 @@ ENDIF(SEMS_USE_ZRTP) # Lame MP3 support IF(SEMS_USE_MP3) - FIND_LIBRARY(LAME_LIBRARIES NAMES mp3lame) - FIND_PATH(LAME_INCLUDE_DIR lame/lame.h) - IF(LAME_INCLUDE_DIR AND LAME_LIBRARIES) - SET(LAME_FOUND TRUE) - MESSAGE(STATUS "Found lame mp3 includes: ${LAME_INCLUDE_DIR}/lame/lame.h") - MESSAGE(STATUS "Found lame mp3 library: ${LAME_LIBRARIES}") - MESSAGE(STATUS "Using lame mp3: YES") - ELSE(LAME_INCLUDE_DIR AND LAME_LIBRARIES) - SET(LAME_FOUND FALSE) - MESSAGE(FATAL_ERROR "Could NOT find lame development files") - ENDIF(LAME_INCLUDE_DIR AND LAME_LIBRARIES) + FIND_PACKAGE(Lame REQUIRED) + MESSAGE(STATUS "Using lame mp3: YES") ELSE(SEMS_USE_MP3) - SET(LAME_FOUND FALSE) MESSAGE(STATUS "Using lame mp3: NO (default)") ENDIF(SEMS_USE_MP3) @@ -159,30 +132,20 @@ ELSE(SEMS_USE_IPV6) ENDIF(SEMS_USE_IPV6) # Let's try to find GSM library and header files -FIND_LIBRARY(GSM_LIBRARIES NAMES gsm) -FIND_PATH(GSM_INCLUDE_DIR gsm.h) -IF(GSM_INCLUDE_DIR AND GSM_LIBRARIES) - SET(GSM_FOUND TRUE) - MESSAGE(STATUS "Found gsm includes: ${GSM_INCLUDE_DIR}/gsm.h") - MESSAGE(STATUS "Found gsm library: ${GSM_LIBRARIES}") +FIND_PACKAGE(Gsm) +IF(GSM_FOUND) MESSAGE(STATUS "Using gsm: YES") -ELSE(GSM_INCLUDE_DIR AND GSM_LIBRARIES) - SET(GSM_FOUND FALSE) +ELSE(GSM_FOUND) MESSAGE(STATUS "Using gsm: NO") -ENDIF (GSM_INCLUDE_DIR AND GSM_LIBRARIES) +ENDIF(GSM_FOUND) # Let's try to find SPEEX library and header files -FIND_LIBRARY(SPEEX_LIBRARIES NAMES speex) -FIND_PATH(SPEEX_INCLUDE_DIR speex/speex.h) -IF(SPEEX_INCLUDE_DIR AND SPEEX_LIBRARIES) - SET(SPEEX_FOUND TRUE) - MESSAGE(STATUS "Found speex includes: ${SPEEX_INCLUDE_DIR}/speex/speex.h") - MESSAGE(STATUS "Found speex library: ${SPEEX_LIBRARIES}") +FIND_PACKAGE(Speex) +IF(SPEEX_FOUND) MESSAGE(STATUS "Using speex: YES") -ELSE(SPEEX_INCLUDE_DIR AND SPEEX_LIBRARIES) - SET(SPEEX_FOUND FALSE) +ELSE(SPEEX_FOUND) MESSAGE(STATUS "Using speex: NO") -ENDIF (SPEEX_INCLUDE_DIR AND SPEEX_LIBRARIES) +ENDIF(SPEEX_FOUND) IF(SEMS_USE_OPENSSL) FIND_PACKAGE(OpenSSL REQUIRED QUIETLY) @@ -218,48 +181,29 @@ ELSE(SIP_INCLUDE_DIR) ENDIF(SIP_INCLUDE_DIR) # Let's try to find MySQL++ development files -FIND_LIBRARY(MYSQLPP_LIBRARIES NAMES mysqlpp) -FIND_PATH(MYSQLPP_INCLUDE_DIR mysql++/mysql++.h) -IF(MYSQLPP_INCLUDE_DIR AND MYSQLPP_LIBRARIES) - SET(MYSQLPP_FOUND TRUE) - MESSAGE(STATUS "Found MySQL++ includes: ${MYSQLPP_INCLUDE_DIR}/mysql++/mysql++.h") - MESSAGE(STATUS "Found MySQL++ library: ${MYSQLPP_LIBRARIES}") +FIND_PACKAGE(MySQLpp) +IF(MYSQLPP_FOUND) MESSAGE(STATUS "Using MySQL++: YES") -ELSE(MYSQLPP_INCLUDE_DIR AND MYSQLPP_LIBRARIES) - SET(MYSQLPP_FOUND FALSE) +ELSE(MYSQLPP_FOUND) MESSAGE(STATUS "Using MySQL++: NO") -ENDIF(MYSQLPP_INCLUDE_DIR AND MYSQLPP_LIBRARIES) +ENDIF(MYSQLPP_FOUND) # Let's try to find Flite library and header files IF(SEMS_USE_TTS) - FIND_LIBRARY(FLITE_LIBRARIES NAMES flite) - FIND_PATH(FLITE_INCLUDE_DIR flite/flite.h) - IF(FLITE_INCLUDE_DIR AND FLITE_LIBRARIES) - SET(FLITE_FOUND TRUE) - MESSAGE(STATUS "Found flite includes: ${FLITE_INCLUDE_DIR}/flite/flite.h") - MESSAGE(STATUS "Found flite library: ${FLITE_LIBRARIES}") - MESSAGE(STATUS "Using flite: YES") - ELSE(FLITE_INCLUDE_DIR AND FLITE_LIBRARIES) - SET(FLITE_FOUND FALSE) - MESSAGE(FATAL_ERROR "CANNOT find flite devel files") - ENDIF (FLITE_INCLUDE_DIR AND FLITE_LIBRARIES) + FIND_PACKAGE(Flite REQUIRED) + MESSAGE(STATUS "Using text-to-speech: YES") ELSE(SEMS_USE_TTS) SET(FLITE_FOUND FALSE) MESSAGE(STATUS "Using text-to-speech: NO (default)") ENDIF(SEMS_USE_TTS) # Let's try to find mISDN library and header files -FIND_LIBRARY(MISDN_LIBRARIES NAMES mISDN) -FIND_PATH(MISDN_INCLUDE_DIR mISDNuser/mISDNlib.h) -IF(MISDN_INCLUDE_DIR AND MISDN_LIBRARIES) - SET(MISDN_FOUND TRUE) - MESSAGE(STATUS "Found mISDN includes: ${MISDN_INCLUDE_DIR}/mISDNuser/mISDNlib.h") - MESSAGE(STATUS "Found mISDN library: ${MISDN_LIBRARIES}") +FIND_PACKAGE(MISDN) +IF(MISDN_FOUND) MESSAGE(STATUS "Using mISDN: YES") -ELSE(MISDN_INCLUDE_DIR AND MISDN_LIBRARIES) - SET(MISDN_FOUND FALSE) +ELSE(MISDN_FOUND) MESSAGE(STATUS "Using mISDN: NO") -ENDIF (MISDN_INCLUDE_DIR AND MISDN_LIBRARIES) +ENDIF(MISDN_FOUND) INCLUDE_DIRECTORIES (${SEMS_SOURCE_DIR}/core/ampi) INCLUDE_DIRECTORIES (${SEMS_SOURCE_DIR}/core/amci) diff --git a/cmake/FindFlite.cmake b/cmake/FindFlite.cmake new file mode 100644 index 00000000..a4d16bad --- /dev/null +++ b/cmake/FindFlite.cmake @@ -0,0 +1,17 @@ +FIND_PATH(FLITE_INCLUDE_DIR flite/flite.h) +FIND_LIBRARY(FLITE_LIBRARIES NAMES flite) + +IF(FLITE_INCLUDE_DIR AND FLITE_LIBRARIES) + SET(FLITE_FOUND TRUE) +ENDIF(FLITE_INCLUDE_DIR AND FLITE_LIBRARIES) + +IF(FLITE_FOUND) + IF (NOT Flite_FIND_QUIETLY) + MESSAGE(STATUS "Found flite includes: ${FLITE_INCLUDE_DIR}/flite/flite.h") + MESSAGE(STATUS "Found flite library: ${FLITE_LIBRARIES}") + ENDIF (NOT Flite_FIND_QUIETLY) +ELSE(FLITE_FOUND) + IF (Flite_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find flite development files") + ENDIF (Flite_FIND_REQUIRED) +ENDIF(FLITE_FOUND) diff --git a/cmake/FindGsm.cmake b/cmake/FindGsm.cmake new file mode 100644 index 00000000..37fd79af --- /dev/null +++ b/cmake/FindGsm.cmake @@ -0,0 +1,17 @@ +FIND_PATH(GSM_INCLUDE_DIR gsm.h) +FIND_LIBRARY(GSM_LIBRARIES NAMES gsm) + +IF(GSM_INCLUDE_DIR AND GSM_LIBRARIES) + SET(GSM_FOUND TRUE) +ENDIF(GSM_INCLUDE_DIR AND GSM_LIBRARIES) + +IF(GSM_FOUND) + IF (NOT Gsm_FIND_QUIETLY) + MESSAGE(STATUS "Found gsm includes: ${GSM_INCLUDE_DIR}/gsm.h") + MESSAGE(STATUS "Found gsm library: ${GSM_LIBRARIES}") + ENDIF (NOT Gsm_FIND_QUIETLY) +ELSE(GSM_FOUND) + IF (Gsm_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find gsm development files") + ENDIF (Gsm_FIND_REQUIRED) +ENDIF(GSM_FOUND) diff --git a/cmake/FindLame.cmake b/cmake/FindLame.cmake new file mode 100644 index 00000000..e0b9f5f9 --- /dev/null +++ b/cmake/FindLame.cmake @@ -0,0 +1,17 @@ +FIND_PATH(LAME_INCLUDE_DIR lame/lame.h) +FIND_LIBRARY(LAME_LIBRARIES NAMES mp3lame) + +IF(LAME_INCLUDE_DIR AND LAME_LIBRARIES) + SET(LAME_FOUND TRUE) +ENDIF(LAME_INCLUDE_DIR AND LAME_LIBRARIES) + +IF(LAME_FOUND) + IF (NOT Lame_FIND_QUIETLY) + MESSAGE(STATUS "Found lame includes: ${LAME_INCLUDE_DIR}/lame/lame.h") + MESSAGE(STATUS "Found lame library: ${LAME_LIBRARIES}") + ENDIF (NOT Lame_FIND_QUIETLY) +ELSE(LAME_FOUND) + IF (Lame_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find lame development files") + ENDIF (Lame_FIND_REQUIRED) +ENDIF(LAME_FOUND) diff --git a/cmake/FindLibsamplerate.cmake b/cmake/FindLibsamplerate.cmake new file mode 100644 index 00000000..d85d0ec1 --- /dev/null +++ b/cmake/FindLibsamplerate.cmake @@ -0,0 +1,17 @@ +FIND_PATH(LIBSAMPLERATE_INCLUDE_DIR samplerate.h) +FIND_LIBRARY(LIBSAMPLERATE_LIBRARIES NAMES samplerate) + +IF(LIBSAMPLERATE_INCLUDE_DIR AND LIBSAMPLERATE_LIBRARIES) + SET(LIBSAMPLERATE_FOUND TRUE) +ENDIF(LIBSAMPLERATE_INCLUDE_DIR AND LIBSAMPLERATE_LIBRARIES) + +IF(LIBSAMPLERATE_FOUND) + IF (NOT Libsamplerate_FIND_QUIETLY) + MESSAGE(STATUS "Found libsamplerate includes: ${LIBSAMPLERATE_INCLUDE_DIR}/samplerate.h") + MESSAGE(STATUS "Found libsamplerate library: ${LIBSAMPLERATE_LIBRARIES}") + ENDIF (NOT Libsamplerate_FIND_QUIETLY) +ELSE(LIBSAMPLERATE_FOUND) + IF (Libsamplerate_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find libsamplerate development files") + ENDIF (Libsamplerate_FIND_REQUIRED) +ENDIF(LIBSAMPLERATE_FOUND) diff --git a/cmake/FindMISDN.cmake b/cmake/FindMISDN.cmake new file mode 100644 index 00000000..38fb5377 --- /dev/null +++ b/cmake/FindMISDN.cmake @@ -0,0 +1,17 @@ +FIND_PATH(MISDN_INCLUDE_DIR mISDNuser/mISDNlib.h) +FIND_LIBRARY(MISDN_LIBRARIES NAMES mISDN) + +IF(MISDN_INCLUDE_DIR AND MISDN_LIBRARIES) + SET(MISDN_FOUND TRUE) +ENDIF(MISDN_INCLUDE_DIR AND MISDN_LIBRARIES) + +IF(MISDN_FOUND) + IF (NOT MISDN_FIND_QUIETLY) + MESSAGE(STATUS "Found mISDN includes: ${MISDN_INCLUDE_DIR}/mISDNuser/mISDNlib.h") + MESSAGE(STATUS "Found mISDN library: ${MISDN_LIBRARIES}") + ENDIF (NOT MISDN_FIND_QUIETLY) +ELSE(MISDN_FOUND) + IF (MISDN_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find mISDN development files") + ENDIF (MISDN_FIND_REQUIRED) +ENDIF(MISDN_FOUND) diff --git a/cmake/FindMySQLpp.cmake b/cmake/FindMySQLpp.cmake new file mode 100644 index 00000000..94050c9c --- /dev/null +++ b/cmake/FindMySQLpp.cmake @@ -0,0 +1,17 @@ +FIND_PATH(MYSQLPP_INCLUDE_DIR mysql++/mysql++.h) +FIND_LIBRARY(MYSQLPP_LIBRARIES NAMES mysqlpp) + +IF(MYSQLPP_INCLUDE_DIR AND MYSQLPP_LIBRARIES) + SET(MYSQLPP_FOUND TRUE) +ENDIF(MYSQLPP_INCLUDE_DIR AND MYSQLPP_LIBRARIES) + +IF(MYSQLPP_FOUND) + IF (NOT MySQLpp_FIND_QUIETLY) + MESSAGE(STATUS "Found mysql++ includes: ${MYSQLPP_INCLUDE_DIR}/mysql++/mysql++.h") + MESSAGE(STATUS "Found mysql++ library: ${MYSQLPP_LIBRARIES}") + ENDIF (NOT MySQLpp_FIND_QUIETLY) +ELSE(MYSQLPP_FOUND) + IF (MySQLpp_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find mysql++ development files") + ENDIF (MySQLpp_FIND_REQUIRED) +ENDIF(MYSQLPP_FOUND) diff --git a/cmake/FindSpandsp.cmake b/cmake/FindSpandsp.cmake new file mode 100644 index 00000000..4bfd066c --- /dev/null +++ b/cmake/FindSpandsp.cmake @@ -0,0 +1,17 @@ +FIND_PATH(SPANDSP_INCLUDE_DIR spandsp.h) +FIND_LIBRARY(SPANDSP_LIBRARIES NAMES spandsp) + +IF(SPANDSP_INCLUDE_DIR AND SPANDSP_LIBRARIES) + SET(SPANDSP_FOUND TRUE) +ENDIF(SPANDSP_INCLUDE_DIR AND SPANDSP_LIBRARIES) + +IF(SPANDSP_FOUND) + IF (NOT Spandsp_FIND_QUIETLY) + MESSAGE(STATUS "Found spandsp includes: ${SPANDSP_INCLUDE_DIR}/spandsp.h") + MESSAGE(STATUS "Found spandsp library: ${SPANDSP_LIBRARIES}") + ENDIF (NOT Spandsp_FIND_QUIETLY) +ELSE(SPANDSP_FOUND) + IF (Spandsp_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find spandsp development files") + ENDIF (Spandsp_FIND_REQUIRED) +ENDIF(SPANDSP_FOUND) diff --git a/cmake/FindSpeex.cmake b/cmake/FindSpeex.cmake new file mode 100644 index 00000000..4e013cbb --- /dev/null +++ b/cmake/FindSpeex.cmake @@ -0,0 +1,17 @@ +FIND_PATH(SPEEX_INCLUDE_DIR speex/speex.h) +FIND_LIBRARY(SPEEX_LIBRARIES NAMES speex) + +IF(SPEEX_INCLUDE_DIR AND SPEEX_LIBRARIES) + SET(SPEEX_FOUND TRUE) +ENDIF(SPEEX_INCLUDE_DIR AND SPEEX_LIBRARIES) + +IF(SPEEX_FOUND) + IF (NOT Speex_FIND_QUIETLY) + MESSAGE(STATUS "Found speex includes: ${SPEEX_INCLUDE_DIR}/speex/speex.h") + MESSAGE(STATUS "Found speex library: ${SPEEX_LIBRARIES}") + ENDIF (NOT Speex_FIND_QUIETLY) +ELSE(SPEEX_FOUND) + IF (Speex_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find speex development files") + ENDIF (Speex_FIND_REQUIRED) +ENDIF(SPEEX_FOUND)