Linux 上的 C++ 项目使用 Conan (v2) 作为依赖项。在 conanfile.py 中使用 Conan 软件包 libavrocpp/1.11.3 时:
def requirements(self):
self.requires("libavrocpp/1.11.3")
def build_requirements(self):
self.tool_requires("libavrocpp/1.11.3")
然后,我想使用包中的 avrogencpp 工具在 CMake 期间从我的 avro 模式生成 C++ 类。
我可以看到该工具存在于本地 Conan 缓存 (~/.conan2) 中的多个位置,我需要从那里以某种方式引用它。我可以在 CMake 文件中硬编码 avrogencpp 的路径,但这会在我下次将软件包升级到较新版本时,或者 Conan 作者修改缓存布局时(缓存布局是专有的,可能会更改)中断。所以:
使用 Conan 软件包时,从 CMake 文件引用 avrogencpp 工具的正确方法(特定于版本)是什么?是否有指向它的符号定义?
(CMake 有 FindProtobuf,它定义符号,包括一个指向特定于版本的 protoc 编译器的符号。Avro 有类似的东西吗?我到目前为止还没有找到它......)