Skip to content
Snippets Groups Projects
CMakeLists.txt 2.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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}
    
    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/versions/api/api.pb.cc
    
      ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/audit-log-agent/api/api.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/hyperledger-agent/api/api.pb.cc
      ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/image-storage-agent/api/api.pb.cc
      ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/restful-api/api/api.pb.cc
      ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/signing-service-agent/api/api.pb.cc
      ${CMAKE_SOURCE_DIR}/proto/cpp/code.vereign.com/code/viam-apis/passport-generation-agent/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>
    )
    
    file(GLOB PROTO_HEADERS ${CMAKE_SOURCE_DIR}/proto/cpp/vereign/client_library/*pb.h)
    target_precompile_headers(vereignproto PUBLIC ${PROTO_HEADERS})
    
      vereign/restapi/detail/http_reader.cc
      vereign/restapi/client.cc
    
      vereign/grpc/gen/gen.cc
      vereign/grpc/service_registry.cc
    
      vereign/grpc/server.cc
      vereign/service/passport_service.cc
    )
    
    
    file(GLOB GENERATED_SERVICES_SRC vereign/service/gen/*.cc)
    list(APPEND VEREIGNLIB_SRC ${GENERATED_SERVICES_SRC})
    
    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
    
      vereignlib
      # fmt::fmt
      # Boost::regex
      # Threads::Threads
      # OpenSSL::SSL
      # $<$<CXX_COMPILER_ID:MSVC>:CRYPT32.LIB>
    
    if (VEREIGN_USE_TIME_TRACE AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
      target_compile_options(csandbox
        PRIVATE "-ftime-trace"
      )
    endif()
    
    
    # Generates the gRPC and Vereign services source code.
    add_custom_target(
      vcl-gen
      COMMAND vcl-gen generate --templates-path=templates --output-path src
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
    )