project(TestOhmSyncCmds CXX C)
cmake_minimum_required(VERSION 2.8)

set(WITH_OPENSSL ON)
set(WITH_POCO_STATIC OFF)

### Enable all warnings
if(MSVC)
    # Force to always compile with W4
    if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
        string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
    else()
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
    endif()
elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -fdata-sections -ffunction-sections -Wl,--gc-sections")
endif()

if (WITH_OPENSSL)
    add_definitions(-DUSE_SECURE_CONNECTION)
endif()
if (WITH_POCO_STATIC)
    add_definitions(-DPOCO_STATIC)
endif()

# Poco C++
set(POCO_LIB_DIR ${PROJECT_SOURCE_DIR}/../../../libs/poco)
include_directories(${POCO_LIB_DIR}/include)
link_directories(${POCO_LIB_DIR}/lib)

# OBLO messenger
set(OBLO_MESSENGER_LIB_DIR ${PROJECT_SOURCE_DIR}/../../../libs/oblomessenger)
link_directories(${OBLO_MESSENGER_LIB_DIR}/lib)
include_directories(${OBLO_MESSENGER_LIB_DIR}/include)
include_directories(${OBLO_MESSENGER_LIB_DIR}/include/paho)

include_directories(${PROJECT_SOURCE_DIR}/src)

set(OMBTEST_SOURCE_FILES
    src/main.cpp)

set(OMBTEST_HEADER_FILES )

add_executable(ohmsynccmdstest ${OMBTEST_SOURCE_FILES} ${OMBTEST_HEADER_FILES})

target_link_libraries(ohmsynccmdstest oblomessenger PocoJSON PocoFoundation)
if (UNIX)
    target_link_libraries(ohmsynccmdstest pthread dl)
endif()

set_target_properties( ohmsynccmdstest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bins" )

if(MSVC)
    set_target_properties( ohmsynccmdstest PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/bins" )
    set_target_properties( ohmsynccmdstest PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/bins" )
endif()

install(TARGETS ohmsynccmdstest DESTINATION ${PROJECT_SOURCE_DIR}/bins)
