如何在模块模式下为find_package设置Find * .cmake?

时间:2019-09-27 17:28:57

标签: cmake

我的项目具有外部依赖项(标头和共享库以及已知安装位置的version.txt文件)。此依赖项没有对CMake find_package()的内置支持。在阅读了find_package() docs和SO answer之后,我的理解是我应该对find_package()使用模块模式。在Find*.cmake cmake目录中,我猜测它应该:

  1. 设置并验证标题和共享库的路径
  2. 读入版本文件
  3. 使用版本文件文本定义项目
  4. 添加接口库目标(${PROJECT_NAME}
  5. 使用名称空间(${MY_NAMESPACE})向接口库添加别名
  6. 为每个共享库路径添加一个库目标
  7. 设置每个共享库的导入路径属性
  8. 将共享库链接到接口库目标
  9. 将include目录链接到接口库目标
  10. export(TARGETS ${PROJECT_NAME} NAMESPACE ${MY_NAMESPACE}::)
  11. export(PACKAGE ${PROJECT_NAME})
  12. 利润?

我这样做正确和/或采取了正确的方法吗?

0 个答案:

没有答案