告诉 CMake 使用自定义 Find*.cmake 而不是系统范围的

Tell CMake to use custom Find*.cmake instead of system wide one

我想使用我从源代码编译并安装在文件夹中的 KWayland 库。我希望我的其他项目使用它。但是相反,它使用系统范围内安装的那个作为包管理器对 KDE 的依赖。

我尝试在 QtCreator 中将 CMAKE_PREFIX_PATH 设置为 /path/to/my/cmakefiles;/usr 并重新配置项目,但它仍然使用 /usr.

中的那个

为示例包 ABC 设置 CMAKE_PREFIX_PATH 将查找 包配置文件 ,包 [=] 将具有以下形式之一13=]:

  • abc-config.cmake
  • ABCConfig.cmake

通过设置CMAKE_PREFIX_PATH,它不会告诉CMake到别处寻找查找模块(例如:FindABC.cmake)。

如果你安装了你的包ABC(在你的例子中,KWayland),安装的包应该提供了一个你可以使用的包配置文件。所以将 CMAKE_PREFIX_PATH 变量指向这个文件:

CMAKE_PREFIX_PATH: /path/to/KWayland/package/config/files

如果没有提供包配置文件,您可以使用查找模块(FindABC.cmake)代替将包导入到您的项目中。要告诉 CMake 在非默认位置查找模块,您需要更新 CMAKE_MODULE_PATH 变量:

CMAKE_MODULE_PATH: /path/to/my/cmakefiles