cmake_minimum_required(VERSION 2.6)
PROJECT(thelib)

#make the list with all the source files
FILE(GLOB_RECURSE SOURCES "${CRTMPSERVER_SOURCES_ROOT}/thelib/src/*.cpp" )

IF(SOCKREACTOR MATCHES "NET_KQUEUE")
	#MESSAGE(STATUS "socket reactor: kqueue")
	SET(KEEP ".*/netio/kqueue/.*")
ELSEIF(SOCKREACTOR MATCHES "NET_EPOLL")
	#MESSAGE(STATUS "socket reactor: epoll")
	SET(KEEP ".*/netio/epoll/.*")
ELSEIF(SOCKREACTOR MATCHES "NET_SELECT")
	#MESSAGE(STATUS "socket reactor: select")
	SET(KEEP ".*/netio/select/.*")
ENDIF(SOCKREACTOR MATCHES "NET_KQUEUE")

FOREACH(CURRENT ${SOURCES})
	IF(${CURRENT} MATCHES ".*/netio/(epoll|select|kqueue|iocp)/.*")
		#MESSAGE(STATUS "Evaluate ${CURRENT}")
		IF(${CURRENT} MATCHES "${KEEP}")
			#MESSAGE(STATUS "KEEP ${CURRENT}")
		ELSE(${CURRENT} MATCHES "${KEEP}")
			#MESSAGE(STATUS "REMOVE ${CURRENT}")
			LIST(APPEND TOBEREMOVED "${CURRENT}")
		ENDIF(${CURRENT} MATCHES "${KEEP}")
	ENDIF(${CURRENT} MATCHES ".*/netio/(epoll|select|kqueue|iocp)/.*")
ENDFOREACH(CURRENT)

FOREACH(CURRENT ${TOBEREMOVED})
	#MESSAGE(STATUS "*** REMOVE ${CURRENT}")
	LIST(REMOVE_ITEM SOURCES "${CURRENT}")
ENDFOREACH(CURRENT ${TOBEREMOVED})

LIST(SORT SOURCES)
FOREACH(CURRENT ${SOURCES})
	#MESSAGE(STATUS "+++ ${CURRENT}")
ENDFOREACH(CURRENT ${SOURCES})


#prepare the include directories
INCLUDE_DIRECTORIES(
	${OPENSSL_INCLUDE_PATH}
	${LUA_INCLUDE_PATH}
	${CRTMPSERVER_SOURCES_ROOT}/common/include
	${CRTMPSERVER_SOURCES_ROOT}/thelib/include
	)

#create the library
ADD_LIBRARY(${PROJECT_NAME} ${LIB_TYPE} ${SOURCES})
ADD_PRECOMPILED_HEADER(${PROJECT_NAME} "${CRTMPSERVER_SOURCES_ROOT}/common/include/common.h")
IF(${LIB_TYPE} MATCHES "SHARED")
	TARGET_LINK_LIBRARIES(${PROJECT_NAME}
		common
		${DL_LIBRARY_PATH}
		${OPENSSL_LIBRARY_PATH}
		${CRYPTO_LIBRARY_PATH}
		${Z_LIBRARY_PATH}
		)
	INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CRTMPSERVER_ROOT})
ENDIF(${LIB_TYPE} MATCHES "SHARED")

