在构建“内部”库时,您还可以准备一个YourInternalLibraryConfig.cmake
文件,该文件准备好用户“导入”库所需的所有内容。
这YourInternalLibraryConfig.cmake
需要在构建内部库或安装它时创建。
在此YourInternalLibraryConfig.cmake
,它应该调用add_library( YourInternalLibrary IMPORTED )
并确保所有属性都已正确准备。例如它可以准备
- 具有
YourInternalLibrary_INCLUDE_DIRS
必要包含目录的变量。
- a
YourInternalLibrary_DEFINES
具有所需的编译器定义
YourInternalLibrary_LIBRARIES
总结提供的所有库
这样,您内部库的用户(例如主应用程序)可以简单地调用:
find_package( YourInternalLibrary )
include_directories( ${YourInternalLibrary_INCLUDE_DIRS} )
add_definitions( ${YourInternalLibrary_DEFINES} )
target_link_library( main ${YourInternalLibrary_LIBRARIES} )
对于更复杂的项目,您可以选择生成一个单独UseYourInternalLibrary.cmake
的为您执行这三个步骤的项目,可选择启用/禁用内部某些部分的开关。
有关一些好的示例,请查看Vtk或OpenCV的源代码