我使用CMake和CPack配置和打包我的库.我已经编写了自己的find-module FindMyLib.cmake.
如何告诉CMake/CPack将此文件添加到CMake模块目录中,以便将来的开发人员可以简单地指定FIND_PACKAGE(MyLib)来使用我的库?
sim*_*ont 61
您可以使用项目设置CMAKE_MODULE_PATH和分发自定义FindFoo.cmake.例如:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
Run Code Online (Sandbox Code Playgroud)
Fra*_*ser 47
CMake模块目录是CMake本身的安装树的一部分,因此您不应该尝试在那里添加任何内容.
CMake模块目录包含已由Kitware编写或至少由其审阅的模块,并且添加您自己的模块会给项目用户留下印象,这也是您项目的情况.
您最好将FindMyLib.cmake安装到搜索到的其中一个位置find_package:
Run Code Online (Sandbox Code Playgroud)<prefix>/ (Windows) <prefix>/(cmake|CMake)/ (Windows) <prefix>/<name>*/ (Windows) <prefix>/<name>*/(cmake|CMake)/ (Windows) <prefix>/(lib/<arch>|lib|share)/cmake/<name>*/ (Unix) <prefix>/(lib/<arch>|lib|share)/<name>*/ (Unix) <prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (Unix) <prefix>/<name>.framework/Resources/ (Apple) <prefix>/<name>.framework/Resources/CMake/ (Apple) <prefix>/<name>.framework/Versions/*/Resources/ (Apple) <prefix>/<name>.framework/Versions/*/Resources/CMake/ (Apple) <prefix>/<name>.app/Contents/Resources/ (Apple) <prefix>/<name>.app/Contents/Resources/CMake/ (Apple)
有关搜索方式的完整详细信息,请参阅文档find_packagefind_package.在这种情况下,CMake打包教程也很有用.
Tri*_*ian 11
允许的最佳方式
未来的开发人员可以简单地指定FIND_PACKAGE(MyLib)来使用我的库
是编写包配置文件(-config.cmake),而不是查找模块.然后应该将包配置文件安装在FindPackage模块查找的文件夹之一(类似于/ lib/package /或/ lib/cmake/package,第二个是首选)
FindPackage模块将自动加载配置文件,如果它可以在那里找到它.
CMake wiki有更详细的说明,请访问https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/Packaging
| 归档时间: |
|
| 查看次数: |
58748 次 |
| 最近记录: |