refactor(build): move vendored deps to third_party
This commit is contained in:
+4
-4
@@ -1,6 +1,6 @@
|
||||
[submodule "lib/CLI11"]
|
||||
path = lib/CLI11
|
||||
[submodule "third_party/CLI11"]
|
||||
path = third_party/CLI11
|
||||
url = https://github.com/CLIUtils/CLI11
|
||||
[submodule "lib/proxy"]
|
||||
path = lib/proxy
|
||||
[submodule "third_party/proxy"]
|
||||
path = third_party/proxy
|
||||
url = https://github.com/ngcpp/proxy
|
||||
|
||||
+12
-35
@@ -25,9 +25,7 @@ find_package(Protobuf REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(rvl CONFIG QUIET)
|
||||
|
||||
if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/lib/CLI11/CMakeLists.txt")
|
||||
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/lib/CLI11" "${CMAKE_CURRENT_BINARY_DIR}/vendor/cli11")
|
||||
endif()
|
||||
add_subdirectory(third_party)
|
||||
|
||||
pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavformat libavutil libswscale)
|
||||
pkg_check_modules(PROTOBUF_PKG QUIET IMPORTED_TARGET protobuf)
|
||||
@@ -64,11 +62,6 @@ if (NOT TARGET rvl::rvl)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CVMMAP_PROXY_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/lib/proxy/include")
|
||||
if (NOT EXISTS "${CVMMAP_PROXY_INCLUDE_DIR}/proxy/proxy.h")
|
||||
message(FATAL_ERROR "proxy headers not found at ${CVMMAP_PROXY_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
add_library(cvmmap_streamer_foxglove_proto STATIC)
|
||||
protobuf_generate(
|
||||
TARGET cvmmap_streamer_foxglove_proto
|
||||
@@ -109,10 +102,10 @@ target_link_libraries(cvmmap_streamer_depth_proto PUBLIC cvmmap_streamer_protobu
|
||||
add_library(cvmmap_streamer_mcap_runtime STATIC
|
||||
src/record/mcap_runtime.cpp)
|
||||
target_include_directories(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/mcap/include")
|
||||
PUBLIC)
|
||||
target_link_libraries(cvmmap_streamer_mcap_runtime
|
||||
PUBLIC
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
|
||||
@@ -135,10 +128,6 @@ add_library(cvmmap_streamer_common STATIC
|
||||
target_include_directories(cvmmap_streamer_common
|
||||
PUBLIC
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/CLI11/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/tomlplusplus/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/mcap/include"
|
||||
"${CVMMAP_PROXY_INCLUDE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
set(CVMMAP_STREAMER_LINK_DEPS
|
||||
@@ -150,7 +139,11 @@ set(CVMMAP_STREAMER_LINK_DEPS
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4
|
||||
rvl::rvl
|
||||
cvmmap::client)
|
||||
cvmmap::client
|
||||
CLI11::CLI11
|
||||
tomlplusplus::tomlplusplus
|
||||
mcap::mcap
|
||||
msft_proxy4::proxy)
|
||||
|
||||
if (TARGET cppzmq::cppzmq)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cppzmq::cppzmq)
|
||||
@@ -170,10 +163,6 @@ elseif (TARGET spdlog)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS spdlog)
|
||||
endif()
|
||||
|
||||
if (TARGET CLI11::CLI11)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS CLI11::CLI11)
|
||||
endif()
|
||||
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS cvmmap_streamer_protobuf)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
list(APPEND CVMMAP_STREAMER_LINK_DEPS PkgConfig::PROTOBUF_PKG)
|
||||
@@ -186,10 +175,6 @@ function(add_cvmmap_binary target source)
|
||||
target_include_directories(${target}
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/CLI11/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/tomlplusplus/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/mcap/include"
|
||||
"${CVMMAP_PROXY_INCLUDE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(${target}
|
||||
PRIVATE
|
||||
@@ -213,15 +198,14 @@ add_executable(mcap_reader_tester src/testers/mcap_reader_tester.cpp)
|
||||
target_include_directories(mcap_reader_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/CLI11/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/mcap/include"
|
||||
"${CVMMAP_PROXY_INCLUDE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_reader_tester
|
||||
PRIVATE
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_depth_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
if (TARGET spdlog::spdlog)
|
||||
@@ -229,9 +213,6 @@ if (TARGET spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE spdlog)
|
||||
endif()
|
||||
if (TARGET CLI11::CLI11)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE CLI11::CLI11)
|
||||
endif()
|
||||
target_link_libraries(mcap_reader_tester PRIVATE cvmmap_streamer_protobuf)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_reader_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
@@ -244,15 +225,14 @@ add_executable(mcap_replay_tester src/testers/mcap_replay_tester.cpp)
|
||||
target_include_directories(mcap_replay_tester
|
||||
PRIVATE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/CLI11/include"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/lib/mcap/include"
|
||||
"${CVMMAP_PROXY_INCLUDE_DIR}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(mcap_replay_tester
|
||||
PRIVATE
|
||||
Threads::Threads
|
||||
CLI11::CLI11
|
||||
cvmmap_streamer_foxglove_proto
|
||||
cvmmap_streamer_mcap_runtime
|
||||
mcap::mcap
|
||||
PkgConfig::ZSTD
|
||||
PkgConfig::LZ4)
|
||||
if (TARGET spdlog::spdlog)
|
||||
@@ -260,9 +240,6 @@ if (TARGET spdlog::spdlog)
|
||||
elseif (TARGET spdlog)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE spdlog)
|
||||
endif()
|
||||
if (TARGET CLI11::CLI11)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE CLI11::CLI11)
|
||||
endif()
|
||||
target_link_libraries(mcap_replay_tester PRIVATE cvmmap_streamer_protobuf)
|
||||
if (TARGET PkgConfig::PROTOBUF_PKG)
|
||||
target_link_libraries(mcap_replay_tester PRIVATE PkgConfig::PROTOBUF_PKG)
|
||||
|
||||
Vendored
Vendored
+38
@@ -0,0 +1,38 @@
|
||||
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/CLI11/CMakeLists.txt")
|
||||
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/CLI11" "${CMAKE_CURRENT_BINARY_DIR}/cli11")
|
||||
elseif(NOT TARGET CLI11::CLI11)
|
||||
set(_CVMMAP_STREAMER_FIND_PACKAGE_TARGETS_GLOBAL "${CMAKE_FIND_PACKAGE_TARGETS_GLOBAL}")
|
||||
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL TRUE)
|
||||
find_package(CLI11 CONFIG REQUIRED)
|
||||
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL "${_CVMMAP_STREAMER_FIND_PACKAGE_TARGETS_GLOBAL}")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET msft_proxy4::proxy)
|
||||
set(CVMMAP_STREAMER_PROXY_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/proxy/include")
|
||||
if(NOT EXISTS "${CVMMAP_STREAMER_PROXY_INCLUDE_DIR}/proxy/proxy.h")
|
||||
message(FATAL_ERROR "proxy headers not found at ${CVMMAP_STREAMER_PROXY_INCLUDE_DIR}")
|
||||
endif()
|
||||
add_library(cvmmap_streamer_proxy_headers INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_proxy_headers INTERFACE "${CVMMAP_STREAMER_PROXY_INCLUDE_DIR}")
|
||||
add_library(msft_proxy4::proxy ALIAS cvmmap_streamer_proxy_headers)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET tomlplusplus::tomlplusplus)
|
||||
set(CVMMAP_STREAMER_TOML_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/tomlplusplus/include")
|
||||
if(NOT EXISTS "${CVMMAP_STREAMER_TOML_INCLUDE_DIR}/toml++/toml.hpp")
|
||||
message(FATAL_ERROR "tomlplusplus headers not found at ${CVMMAP_STREAMER_TOML_INCLUDE_DIR}")
|
||||
endif()
|
||||
add_library(cvmmap_streamer_tomlplusplus_headers INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_tomlplusplus_headers INTERFACE "${CVMMAP_STREAMER_TOML_INCLUDE_DIR}")
|
||||
add_library(tomlplusplus::tomlplusplus ALIAS cvmmap_streamer_tomlplusplus_headers)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET mcap::mcap)
|
||||
set(CVMMAP_STREAMER_MCAP_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/mcap/include")
|
||||
if(NOT EXISTS "${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}/mcap/mcap.hpp")
|
||||
message(FATAL_ERROR "mcap headers not found at ${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}")
|
||||
endif()
|
||||
add_library(cvmmap_streamer_mcap_headers INTERFACE)
|
||||
target_include_directories(cvmmap_streamer_mcap_headers INTERFACE "${CVMMAP_STREAMER_MCAP_INCLUDE_DIR}")
|
||||
add_library(mcap::mcap ALIAS cvmmap_streamer_mcap_headers)
|
||||
endif()
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
# Third-Party Dependencies
|
||||
|
||||
All vendored dependencies in this repo live under `third_party/`.
|
||||
|
||||
Dependencies:
|
||||
- `CLI11` (git submodule): command-line parsing, target `CLI11::CLI11`
|
||||
- `proxy` (git submodule): proxy/rtti headers, target `msft_proxy4::proxy`
|
||||
- `tomlplusplus` (vendored source drop): TOML parsing, target `tomlplusplus::tomlplusplus`
|
||||
- `mcap` (vendored source drop): MCAP headers, target `mcap::mcap`
|
||||
|
||||
Bootstrap:
|
||||
- `git submodule sync --recursive`
|
||||
- `git submodule update --init --recursive`
|
||||
|
||||
Rule:
|
||||
- New vendored dependencies must live under `third_party/` and be exposed through `third_party/CMakeLists.txt`.
|
||||
Vendored
Vendored
Vendored
Reference in New Issue
Block a user