conan 2.0 cmake接口库

mqxuamgl  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(154)

我有一个CMake项目,它创建了一个接口库(只显示CMakeLists.txt的关键部分):

...
add_subdirectory(part1)
add_subdirectory(part2)
add_subdirectory(part3)
add_library(part_interface INTERFACE)
target_link_libraries(part_interface INTERFACE 
                part1 
                part2 
                part3
)
...

字符串
每个子目录[lib1,lib2,lib3]都包含一个CMakeLists.txt,它允许构建不同的库。
我不知道我如何组织一个通用的conanfile.py创建这样一个接口库的包?我想它 Package 所有的子库以及一个全球性的(libinterface)?
我在documentation中看到了组件的概念,但我不明白我怎么能有一个东西来绑定所有的子库,而不需要自己有一些源代码?我应该为每个子库都有一个conanfile.py吗?
提前感谢你的帮助

7rtdyuoh

7rtdyuoh1#

只是我的两个美分的设计应该如何工作
我不知道我如何组织一个通用的conanfile.py创建这样一个接口库的包?我想它 Package 所有的子库以及一个全球性的(libinterface)?
严格地说,组件并不是一个 * 打包 * 的东西,所有的库都可以通过包获得,包总是完整的,包括所有组件的二进制文件。
我怎么能有一个东西,它可以绑定所有的子库,而本身没有一些源代码
你将不得不编写你自己的conanfile.py来向pkg系统解释你的构建系统是如何工作的,正如在那张罚单中提到的,组件毕竟是一个“高级”用例。
每个子库都应该有一个conanfile.py吗
不可以。每个包只能有一个实现ConanFile的类

相关问题