【发布时间】:2021-09-30 15:14:53
【问题描述】:
使用柯南开发图书馆似乎迫使图书馆的用户也使用柯南。有没有一种(标准)方法可以用 protobuf 替换 Targets.cmake 中的 CONAN_PKG::protobuf 引用?
上下文
我正在使用cmake构建一个使用protobuf的静态C++库,使用conan来处理protobuf依赖,即
target_link_libraries(mylib
PUBLIC
CONAN_PKG::protobuf
)
当我在本地安装这个库时,即ninja install 创建的MylibTargets.cmake 包含对CONAN_PKG::protobuf 的引用
set_target_properties(Mylib::Mylib PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/mylib;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "CONAN_PKG::protobuf"
这会强制我的库的用户使用 conan 来解决 CONAN_PKG::protobuf 依赖项。 (我希望库的用户能够使用 protobuf 头文件)。
我正在使用
install(EXPORT MylibTargets
FILE MylibTargets.cmake
NAMESPACE Mylib::
DESTINATION lib/cmake/mylib
)
生成 MylibTargest.cmake
【问题讨论】: