cmake_minimum_required(VERSION 3.13 FATAL_ERROR)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/Debug")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/Release")

project(TurretApiCpp VERSION 0.1 LANGUAGES CXX)

include(FeatureSummary)
feature_summary(WHAT ALL)

set(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/OpenSSL"
  CACHE PATH "OpenSSL root directory"
)
find_package(OpenSSL REQUIRED COMPONENTS SSL)

set(BOOST_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/Boost"
  CACHE PATH "Boost root directory"
)
set(BOOST_LIBRARYDIR "${BOOST_ROOT}/lib")
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_STATIC_RUNTIME OFF)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost 1.67 REQUIRED MODULE COMPONENTS atomic)

message("-- Directory containing Boost headers           - ${Boost_INCLUDE_DIR}")
message("-- Directory containing release Boost libraries - ${Boost_LIBRARY_DIR_RELEASE}")
message("-- Directory containing debug Boost libraries   - ${Boost_LIBRARY_DIR_DEBUG}")
message("-- Component library debug variant   - ${Boost_ATOMIC_LIBRARY_DEBUG}")
message("-- Component library release variant - ${Boost_ATOMIC_LIBRARY_RELEASE}")

set(THRIFT_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/Thrift"
  CACHE PATH "Thrift root directory"
)
find_package(Thrift REQUIRED)

add_subdirectory(osxpert.thrift)
add_subdirectory(TurretApi)
add_subdirectory(examples)

include(CPack)
