当您已经使用 CMake 设置项目时,请查看Hunter 包管理器。它只需几行额外的 cmake 代码即可自动下载并构建您的依赖项。Hunter 基于 cmake 导出和导入目标。
例如,如果您想在基于 cmake 的项目中使用 GoogleTest 库,您可以将以下行添加到根 CMakeLists.txt
# file root CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
# To get hunter you need to download and include a single cmake file
# see documentation for correct name
include("../gate.cmake")
project(download-gtest)
# set the location of all your hunter-packages
set( HUNTER_ROOT_DIR C:/CppLibraries/HunterLibraries )
# This call automaticall downloads and compiles gtest the first time
# cmake is executed. The library is then cached in the HUNTER_ROOT_DIR
hunter_add_package(GTest)
# Now the GTest library can be found and linked to by your own project
find_package(GTest CONFIG REQUIRED)
add_executable(foo foo.cpp)
target_link_libraries(foo GTest::main)
并非您列出的所有库都可以作为“hunter-packages”使用,但该项目是开源的,因此您可以为您的依赖项创建 Hunter-packages 并将它们提交到项目中。这是已经作为猎人包可用的库列表。
这不会立即解决您的所有问题,因为您必须为您的依赖项创建猎人包。但是现有的框架已经做了很多工作,最好使用它而不是半途而废的自制解决方案。