PROJECT(services)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)

# use some of our own Find* scripts
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeScripts)

IF(NOT CMAKE_BUILD_TYPE)
	SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
		"Choose the type of build, options are: None Debug Release
		RelWithDebInfo MinSizeRel."
		FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)

# compiler flags
IF(CMAKE_COMPILER_IS_GNUCXX)
	# Set our own default flags at first run.
	IF(NOT CONFIGURED)
		IF(ENABLE_STRICT_COMPILATION)
			SET(STRICT_FLAGS "-Werror -Wno-unused-parameter")
		ELSE(ENABLE_STRICT_COMPILATION)
			SET(STRICT_FLAGS "")
		ENDIF(ENABLE_STRICT_COMPILATION)

		SET(CMAKE_C_FLAGS "-W -Wall -ansi $ENV{CFLAGS}" 
			CACHE STRING "Flags used by the C compiler during normal builds."
			FORCE)
		SET(CMAKE_C_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall -ansi $ENV{CFLAGS}"
			CACHE STRING "Flags used by the C compiler during debug builds."
			FORCE)

		SET(CMAKE_CXX_FLAGS "-W -Wall -ansi ${STRICT_FLAGS} $ENV{CXXFLAGS}"
			CACHE STRING "Flags used by the CXX compiler during normal builds."
			FORCE)
		SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -W -Wall -ansi ${STRICT_FLAGS} $ENV{CXXFLAGS}"
			CACHE STRING "Flags used by the CXX compiler during debug builds."
			FORCE)
		SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -fno-omit-frame-pointer" 
			CACHE STRING "Flags used by the CXX compiler during relwithdebiginfo builds" FORCE)
	ENDIF(NOT CONFIGURED)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)

SET(LIBS "")

#required packages
FIND_PACKAGE(Boost 1.46 REQUIRED COMPONENTS system program_options filesystem thread regex)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
SET(LIBS ${LIBS} ${Boost_LIBRARIES})

FIND_PACKAGE(LOG4CXX REQUIRED)
INCLUDE_DIRECTORIES(${LOG4CXX_INCLUDE_DIR})
SET(LIBS ${LIBS} ${LOG4CXX_LIBRARY})

FIND_PACKAGE(Curlpp REQUIRED)
INCLUDE_DIRECTORIES(${Curlpp_INCLUDE_DIR})
SET(LIBS ${LIBS} ${Curlpp_LIBRARY})

FIND_PACKAGE(JsonCpp REQUIRED)
INCLUDE_DIRECTORIES(${JsonCpp_INCLUDE_DIR})
SET(LIBS ${LIBS} ${JsonCpp_LIBRARY})

FIND_PACKAGE(BoostThreadpool REQUIRED)
INCLUDE_DIRECTORIES(${BoostThreadpool_INCLUDE_DIR})

# library and services
ADD_SUBDIRECTORY(nlp_service)

INCLUDE_DIRECTORIES(${nlp_service_SOURCE_DIR}/..)
LINK_DIRECTORIES(${nlp_service_BINARY_DIR})

SET(INSTALL_WCRFT2_SERVICE ON CACHE BOOL "Install WCRFT2 service")
IF(INSTALL_WCRFT2_SERVICE)
	ADD_SUBDIRECTORY(wcrft)
ENDIF(INSTALL_WCRFT2_SERVICE)
