在CMake中,有没有办法制作内置的Find脚本来确定我们指定的自定义目录的优先级?因为特别是在Windows中,模块查找脚本通常无法检测模块,例如visual studio目录.因此,我通常必须手动设置外部库的路径,这是非常累人的.相反,我希望这些脚本能够查看自定义目录,首先让我们在主项目中说"dependencies"文件夹,以便我可以直接将这些外部文件放在该文件夹中,这比将它们放入VC文件夹或手动设置更容易.路径.
设置CMAKE_PREFIX_PATH变量完全用于以下目的:提示find_*有关搜索项目位置的功能.
虽然此变量的描述没有注明find_package函数,但变量间接影响它:大多数Find<name>.cmake脚本使用find_library和find_path函数.注意,所有find_*函数都具有针对搜索项的精确算法,并且CMAKE_PREFIX_PATH在系统之前检查构造的路径.
而且,CMAKE_PREFIX_PATH影响其他一些搜索程序.例如,如果3d party包提供<name>Config.cmake脚本而不是Find<name>.cmake一个脚本,则还会使用此变量搜索此脚本.pkg_check_modules也CMAKE_PREFIX_PATH用于搜索.pc文件,描述了包.
CMAKE_PREFIX_PATH变量可以设置为环境1(以平台依赖和特定于用途的方式),作为cmake调用的参数:
cmake -DCMAKE_PREFIX_PATH=<additional-path> <other-parameters>
Run Code Online (Sandbox Code Playgroud)
或在CMakeLists.txt文件中.在最后一种情况下,最好附加搜索目录,因此您的用户包也能够为您的项目未附带的搜索包设置变量:
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/dependencies")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |