如何在CMAKE中导出包含组件的库?

ada*_*vid 5 c++ export cmake libraries

我已经尝试在官方CMAKE维基上找到这些信息以及搜索SO(目前正在等待提升下载所以我可以通过源代码查找他们是如何做到的).我希望这里的某个人能够帮助完成这项工作,或者指出我正确的答案方向!

我有一个包含多个组件的项目.现在,该项目具有库和应用程序的子目录.我正在尝试重构项目并在各个存储库中安装应用程序并导出库.

其他项目如何使用以下命令(具体来说,指定哪些组件):

FIND_PACKAGE(Boost REQUIRED COMPONENTS系统date_time文件系统)

我想为我自己的项目使用相同的系统:

FIND_PACKAGE(项目需要组件查看gui执行分析)

您将提供的任何帮助将不胜感激.

zau*_*ufi 2

关于如何编写查找器的一个很好的指南,您可以在CMake 文档中找到(流行发行版的旧 CMake 包有/usr/share/cmake/Modules/readme.txt文件,但现在似乎它不存在或不再有任何有用的信息;-)。特别是它解释了如何使用支持“标准”语法(、&等)编写正确的模块。这适用于非基于 CMake 的包并将其转换为模块模式REQUIRECOMPONENTSfind_package_handle_standard_argsfind_package

对于基于 CMake 的项目,有一种更好的(本机)方法来导出目标(也称为的配置模式find_package)。现代 CMake 可以帮助您生成所需的*.cmake文件,并且您的项目应该将install()它们放置到正确的位置。因此,依赖项目可以用来find_package()导入的目标(库或可执行文件)。

  • 该自述文件只是指向 cmake-developer(7) 手册页的指针。在那里我没有找到有关如何创建组件的信息。你能说得更明确一点吗? (2认同)
  • 根据cmake文档,find_package_handle_standard_args用于查找模块,而不是在配置模块中使用,因为问题暗示https://cmake.org/cmake/help/v3.3/module/FindPackageHandleStandardArgs.html (2认同)