refactor(build): move vendored deps to third_party

This commit is contained in:
2026-03-16 15:18:43 +08:00
parent 8ad7dd05a1
commit ee8ff747ea
71 changed files with 70 additions and 39 deletions
+4 -4
View File
@@ -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
View File
@@ -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)
View File
+38
View File
@@ -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()
+16
View File
@@ -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`.
View File