cmake_minimum_required(VERSION 2.6)

project (calc CXX)

set(CALC_HEADERS calc.h)

set(NGREST_SOURCE_DIR "$ENV{HOME}/.ngrest/ngrest")

include_directories("${NGREST_SOURCE_DIR}/core/server/src/")

set(PROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(CALC_CODEGEN_DIR "${PROJECT_BINARY_DIR}/codegen")

PREPEND(CALC_HEADERS_PATHS ${PROJECT_SOURCE_DIR} ${CALC_HEADERS})

CODEGEN_FILES(CALC_CODEGEN_SOURCES ${CALC_CODEGEN_DIR} ${CALC_HEADERS})

add_custom_command(OUTPUT ${CALC_CODEGEN_SOURCES}
    COMMAND ${NGREST_BIN_PATH}ngrestcg -i "${PROJECT_SOURCE_DIR}" -o ${CALC_CODEGEN_DIR} -t service ${CALC_HEADERS}
    DEPENDS ${CALC_HEADERS_PATHS}
)


file(GLOB CALC_SOURCES ${PROJECT_SOURCE_DIR}/*.cpp ${NGREST_SOURCE_DIR}/core/server/src/*.cpp)

message (${NGREST_SOURCE_DIR})

list(APPEND CALC_SOURCES ${CALC_CODEGEN_SOURCES})
list(REMOVE_ITEM CALC_SOURCES ${NGREST_SOURCE_DIR}/core/server/src/main.cpp)


include_directories(${CALC_CODEGEN_DIR} ${PROJECT_SOURCE_DIR} $ENV{NGREST_EXT_INCLUDES})

add_executable(calc ${CALC_SOURCES})

target_link_libraries(calc ngrestutils ngrestcommon ngrestjson ngrestengine $ENV{NGREST_EXT_LIBS})
