cmake_minimum_required(VERSION 3.13)

set(PUBLIC_HEADERS
  ${CMAKE_CURRENT_SOURCE_DIR}/include/ThriftClient.h
  ${CMAKE_CURRENT_SOURCE_DIR}/include/ThriftServer.h
)

set(SOURCES
  ${CMAKE_CURRENT_SOURCE_DIR}/source/ThriftClient.cpp
  ${CMAKE_CURRENT_SOURCE_DIR}/source/ThriftServer.cpp
)

SOURCE_GROUP("Public Headers" FILES ${PUBLIC_HEADERS})
SOURCE_GROUP("Source Files" FILES ${SOURCES})

add_library(osxpert.thrift.interface INTERFACE)

target_include_directories(osxpert.thrift.interface
  INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include
            $<TARGET_PROPERTY:Thrift::lib,INTERFACE_INCLUDE_DIRECTORIES>
            $<TARGET_PROPERTY:Boost::boost,INTERFACE_INCLUDE_DIRECTORIES>
)

add_library(osxpert.thrift ${PUBLIC_HEADERS} ${SOURCES})

target_include_directories(osxpert.thrift
  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/source
)

target_link_libraries(osxpert.thrift
  PUBLIC osxpert.thrift.interface
         Boost::boost
         Boost::disable_autolinking
         Thrift::lib
)
