cmake_minimum_required(VERSION 3.2) 
project(NADS_DDSLIB CXX)
################################################################################
# Source groups
################################################################################
set(CMAKE_C_FLAGS "-Wall -g")

set (SRC 
	apex_memmove.cpp
	DDSSimClient.cpp
	NADSPlugin.cxx
	NADS.cxx
	stdafx.cpp
)

set (HEADERS
    apex_memmove.h
    stdafx.h
    targetver.h
    NADS.hpp
    NADSPlugin.hpp
)

set (PUBLIC_INCLUDE
	./include/NadsDDSLib/DDSSimClient.h
	./include/NadsDDSLib/NadsDDSLib.h
)

set (LIB_SRC
    ./src/GenericSubscriber.cpp
    ./src/GenericSubscriber.h
    ./src/nadsddsimpl.cpp
    ./src/nadsddsimpl.h
    ./src/nadsddslib.cpp
    ./src/value_as_string.cpp
    ./src/value_as_string.h
)

source_group("Source Files"   FILES ${SRC} )
source_group("Header Files"   FILES ${HEADERS})
source_group("PUBLIC INCLUDE" FILES ${PUBLIC_INCLUDE} )
source_group("Lib Source"     FILES ${LIB_SRC})

################################################################################
# Target
################################################################################

if(MSVC)
    add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS  -DRTI_WIN32)
endif()

add_library(${PROJECT_NAME} STATIC ${SRC} ${HEADERS} ${PUBLIC_INCLUDE} ${LIB_SRC})


target_include_directories(${PROJECT_NAME} 
PUBLIC
	"${CMAKE_CURRENT_SOURCE_DIR}/./include"
    "${CMAKE_CURRENT_SOURCE_DIR}/../nads-boost;"
PRIVATE
	"${CMAKE_CURRENT_SOURCE_DIR}"
	"${CMAKE_CURRENT_SOURCE_DIR}/src"
	"$ENV{NDDSHOME}/include"
	"$ENV{NDDSHOME}/include/ndds"
	"$ENV{NDDSHOME}/include/ndds/hpp"	
)

set_target_properties(${PROJECT_NAME} PROPERTIES
            CXX_STANDARD 17
			CXX_EXCEPTIONS on
            )
		

target_link_directories(${PROJECT_NAME} 
PUBLIC
    "$ENV{NDDSHOME}/lib/x64Win64VS2017"
)
			
################################################################################
# Output directory
################################################################################
set_target_properties(${PROJECT_NAME} PROPERTIES
    OUTPUT_DIRECTORY_DEBUG   "${CMAKE_SOURCE_DIR}//lib/"
	OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}//lib/"
)


