要使用find_package,您需要具有相应的Find或Config cmake文件。但图书馆可能不提供它,似乎与你的图书馆是这样的情况。您可以使用find_library查找库,find_path查找include目录。有了这些命令,你甚至可以自己编写FindXXX.cmake。
CMAKE_MODULE_PATH不是一个环境变量,它是CMake的一个。这个变量是为你设置的,如果你有额外的模块目录,默认情况下它是空的。这用于“模块”模式。在这种模式下,CMake在CMAKE_MODULE_PATH(您的模块)或CMake附带的模块中搜索FindXXX.cmake,如果找到它,它就会使用它来查找库和它的头文件。
如果未找到该模块,则会切换到“Config”模式。在Unix它搜索ConfigXXX.cmake在以下目录:
<prefix>/(lib/<arch>|lib|share)/cmake/<name>*/
<prefix>/(lib/<arch>|lib|share)/<name>*/
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/
此文件附带的库,所以没有必要找什么,它们所包含的所有信息,其中库和包括位于等。
关于命名方案,没有标准方案。你可以看看Standard CMake modules。为您的库找到名为FindLibConfig.cmake的模块的模块
对于您的情况,库没有相应的cmake文件,因此您应该将它写入自己(或查找已写入),并将该文件添加到CMAKE_MODULE_PATH。
我建议您阅读how find_package command works和how to write FindXXX.cmake files。
我认识的库有一个配置cmake文件。该文件将在哪里找到,以及与库相关的软件包名称是什么?请看我的其他两个问题。 – Mustafa 2012-08-16 18:51:04
@Mustafa:更新后的帖子更多信息 – 2012-08-16 21:29:27