Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@
[submodule "dependencies/libquicr"]
path = dependencies/libquicr
url = git@github.com:Quicr/libquicr.git
[submodule "dependencies/spdlog"]
path = dependencies/spdlog
url = https://github.com/gabime/spdlog.git
[submodule "dependencies/moxygen"]
path = dependencies/moxygen
url = https://github.com/openmoq/moxygen
8 changes: 6 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
cmake_minimum_required(VERSION 3.16)

# Option to control component installation
option(LAPS_INSTALL "Install the laps Components" ON)
###
### Options
###

option(LAPS_INSTALL "Install the laps Components" ON)
option(LAPS_BUILD_TESTS "Build Tests laps" OFF)
option(LAPS_WITH_MOXYGEN ON)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -36,6 +39,7 @@ if(CLANG_TIDY)
endif()
endif()


###
### Dependencies
###
Expand Down
24 changes: 24 additions & 0 deletions cmake/CPM.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# SPDX-License-Identifier: MIT
#
# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors

set(CPM_DOWNLOAD_VERSION 0.42.1)
set(CPM_HASH_SUM "f3a6dcc6a04ce9e7f51a127307fa4f699fb2bade357a8eb4c5b45df76e1dc6a5")

if(CPM_SOURCE_CACHE)
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
else()
set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
endif()

# Expand relative path. This is important if the provided path contains a tilde (~)
get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE)

file(DOWNLOAD
https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake
${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM}
)

include(${CPM_DOWNLOAD_LOCATION})
8 changes: 8 additions & 0 deletions dependencies/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@ if(BUILD_TESTING AND LAPS_BUILD_TESTS)
add_subdirectory( doctest )
endif()

set(SPDLOG_USE_STD_FORMAT ON CACHE INTERNAL "" FORCE)
add_subdirectory( libquicr )

if (LAPS_WITH_MOXYGEN)
set(BUILD_PICOQUIC OFF CACHE INTERNAL "" FORCE)
set(BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
list(APPEND _FETCHCONTENT_PROVIDED_DEPS picoquic)
add_subdirectory(moxygen/standalone)
endif()
1 change: 1 addition & 0 deletions dependencies/spdlog
Submodule spdlog added at 45b67e
33 changes: 25 additions & 8 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ if(CLANG_TIDY_EXE)
set_target_properties(quicr PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_EXE}")
endif()


add_executable(lapsRelay
set(LAPS_SOURCES
main.cc
config.cc
client_manager.cc
subscribe_handler.cc
publish_handler.cc
fetch_handler.cc
publish_namespace_handler.cc
quicr_client_manager.cc

peering/messages/connect.cc
peering/messages/connect_response.cc
Expand All @@ -28,18 +28,35 @@ add_executable(lapsRelay
peering/info_base.cc
)

target_link_libraries(lapsRelay PRIVATE quicr)
target_include_directories(lapsRelay PRIVATE ${PROJECT_SOURCE_DIR}/dependencies/oss )
if (LAPS_WITH_MOXYGEN)
list(APPEND LAPS_SOURCES moxygen_client_manager.cc)
endif()

add_executable(lapsRelay ${LAPS_SOURCES})
target_include_directories(lapsRelay PRIVATE ${PROJECT_SOURCE_DIR}/dependencies/oss)

target_compile_options(lapsRelay
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>: -Wpedantic -Wextra -Wall>
$<$<CXX_COMPILER_ID:MSVC>: >)
$<$<CXX_COMPILER_ID:MSVC>: >
)

set_target_properties(lapsRelay
PROPERTIES
set_target_properties(lapsRelay PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS ON)
CXX_EXTENSIONS ON
)

target_compile_definitions(lapsRelay PRIVATE SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_DEBUG)
target_link_libraries(lapsRelay PRIVATE quicr)

if (LAPS_WITH_MOXYGEN)
target_compile_definitions(lapsRelay PRIVATE WITH_MOXYGEN)
target_link_libraries(lapsRelay PRIVATE
moxygen_moq_server
moxygen_moq_relay_session
moxygen_relay_moq_relay
)
else()
target_compile_definitions(lapsRelay PRIVATE WITH_QUICR)
endif()
Loading
Loading