我有一个lib,我手工安装(到/usr/local)在
Linux系统(Eigen3,顺便说一下).有一个FindEigen3.cmake与lib捆绑在一起,但默认情况下不会安装在任何地方.
有/usr/share/cmake-x.y/Modules,其中CMake查找其他模块,但将这些文件放在那里似乎没有办法做到这一点.默认情况下,还会扫描/usr/local下的等效位置吗?或者创建自定义库模块的标准方法是什么?
(虽然问题与编程没有严格的连接,我认为图书馆作者也可能会遇到同一个问题:另一方面:手动安装这些文件的位置.)
解决方法
请参阅CMake文档中有关“find_package”命令的注释:
http://cmake.org/cmake/help/v2.8.8/cmake.html#command:find_package
它说的是编写一个“project-config”文件,以及在哪里安装它,这样find_package(Eigen3)就可以在没有FindEigen3.cmake查找模块的情况下工作…它是冗长的,但信息在那里.
http://cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file