if (fmt_FOUND)
  get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES)
endif()

include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_SOURCE_DIR}/src
  ${VENDOR_INSTALL_DIR}/include
  ${VENDOR_INSTALL_DIR}/boost/include
  ${FMT_INCLUDE_DIR}
  ${CMAKE_SOURCE_DIR}/proto/cpp
)

file(GLOB PROTO_SRC ${CMAKE_SOURCE_DIR}/proto/cpp/vereign/client_library/*.cc)
list(APPEND PROTO_SRC
  ${CMAKE_SOURCE_DIR}/proto/cpp/google/api/annotations.pb.cc
  ${CMAKE_SOURCE_DIR}/proto/cpp/google/api/http.pb.cc

  ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/entities-management-agent/api/api.pb.cc
  ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/versions/api/api.pb.cc
)
add_library(vereignproto STATIC ${PROTO_SRC})

target_link_libraries(
  vereignproto
  fmt::fmt
  protobuf::libprotobuf
  OpenSSL::SSL
  OpenSSL::Crypto
  $<$<CXX_COMPILER_ID:MSVC>:CRYPT32.LIB>
)

set(vereignlib_src
  vereign/restapi/detail/http_reader.cc
  vereign/restapi/client.cc
  vereign/service/gen/passport_service.cc
  vereign/grpc/server.cc
  vereign/service/passport_service.cc
)

add_library(vereignlib STATIC ${vereignlib_src})
target_link_libraries(
  vereignlib
  vereignproto
  gRPC::grpc++_reflection
  gRPC::grpc++
)

set(csandbox_sources
  csandbox.cc
)

#add_library(csandboxlib STATIC ${csandboxlib_src})
#target_link_libraries(csandboxlib ${LIBS})

add_executable(csandbox ${csandbox_sources})

target_link_libraries(csandbox
  fmt::fmt
  Boost::regex
  Threads::Threads
  OpenSSL::SSL
  $<$<CXX_COMPILER_ID:MSVC>:CRYPT32.LIB>
)