project (agx-ast-addons)

#
# Compiler Options
#
SET(CMAKE_BUILD_TYPE Debug)
SET(CMAKE_C_FLAGS_DEBUG "-g -O -Wall -Werror")
SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall")

set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/dist)


#--------------------------------------------------
# Asterisk is required
#--------------------------------------------------

FIND_PATH(ASTERISK_INCLUDE_DIR asterisk.h /usr/include /usr/local/include)
IF(NOT ASTERISK_INCLUDE_DIR)
MESSAGE(FATAL_ERROR "MISSING HEADER: asterisk.h")
ENDIF(NOT ASTERISK_INCLUDE_DIR)
INCLUDE_DIRECTORIES(${ASTERISK_INCLUDE_DIR})


#--------------------------------------------------
# SPANDSP is required
#--------------------------------------------------

FIND_PATH(SPANDSP_INCLUDE_DIR spandsp.h /usr/include /usr/local/include)
IF(NOT SPANDSP_INCLUDE_DIR)
MESSAGE(FATAL_ERROR "MISSING HEADER: spandsp.h")
ENDIF(NOT SPANDSP_INCLUDE_DIR)
INCLUDE_DIRECTORIES(${SPANDSP_INCLUDE_DIR})

FIND_LIBRARY(SPANDSP_LIBRARY_DIR NAMES spandsp PATH /usr/lib /usr/local/lib)
IF(NOT SPANDSP_LIBRARY_DIR)
MESSAGE(FATAL_ERROR "MISSING LIBRARY: spandsp")
ENDIF(NOT SPANDSP_LIBRARY_DIR)
LINK_DIRECTORIES(${SPANDSP_LIBRAY_DIR})


# ------------------------------------------------------
# Target
# we use "MODULE" cause it build a shared object module
# ------------------------------------------------------
#EXPERIMENTAL	ADD_LIBRARY(app_confcall 		MODULE app_confcall.c)
ADD_LIBRARY(app_devstate 		MODULE app_devstate.c)
ADD_LIBRARY(app_nv_backgrounddetect 	MODULE app_nv_backgrounddetect.c)
ADD_LIBRARY(app_nv_faxdetect 		MODULE app_nv_faxdetect.c)
ADD_LIBRARY(app_pickup2 		MODULE app_pickup2.c)
ADD_LIBRARY(app_rxfax	 		MODULE app_rxfax.c)
ADD_LIBRARY(app_txfax 			MODULE app_txfax.c)
ADD_LIBRARY(func_devstate		MODULE func_devstate.c)
ADD_LIBRARY(app_valetparking		MODULE app_valetparking.c)


#
# We remove the "lib" prefix from the libmodule.so filename
#
#EXPERIMENTAL	SET_TARGET_PROPERTIES(app_confcall 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_devstate 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_nv_backgrounddetect 	PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_nv_faxdetect 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_pickup2 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_rxfax 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_txfax 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(func_devstate 		PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES(app_valetparking 		PROPERTIES PREFIX "")


#
# We add library dependencies to use those modules
#
TARGET_LINK_LIBRARIES(app_rxfax spandsp tiff)
TARGET_LINK_LIBRARIES(app_txfax spandsp tiff)


#
# override default INSTALL rules
#
# app_txfax
INSTALL(TARGETS app_devstate app_nv_backgrounddetect app_nv_faxdetect app_pickup2 app_txfax app_rxfax func_devstate app_valetparking DESTINATION lib/asterisk/modules)

#
# TESTING
#
ADD_EXECUTABLE(test_spandsp		test_spandsp.c)
TARGET_LINK_LIBRARIES(test_spandsp spandsp tiff)
ENABLE_TESTING()
ADD_TEST(spandsp_test test_spandsp)

