在CMake脚本中添加pkg-config的临时路径?

usr*_*567 14 pkg-config cmake

对于外部库,用户可以通过添加路径CMAKE_FLAGS或通过添加来指定非标准位置-DMYLIB_ROOT.在CMake脚本中,我想找到库的pkg-config pc文件.因为PC的文件不在标准文件夹,它不是由pkg配置与发现FindPkgConfigpkg_search_module.

我试图添加用户给定的路径,PKG_CONFIG_PATH但它似乎被忽略:

include(FindPkgConfig)
set(PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig")
pkg_search_module(PKG_MYLIB mylib)

if(${PKG_MYLIB_FOUND})
...
Run Code Online (Sandbox Code Playgroud)

当我从带有修改PKG_CONFIG_PATH集的终端调用pkg-config时,它会找到pc文件.我究竟做错了什么?我怎样才能pkg_search_module工作?我想避免直接从CMake调用pkg-config.

小智 13

也许以下人员会做这个工作

set( ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig" )
Run Code Online (Sandbox Code Playgroud)


usr*_*567 8

这是一个已知的问题,并且在CMake的 bugtracker中存在一张,但由于缺乏开发人员的兴趣,它已被锁定.我猜一个人必须先提供补丁......

编辑:根据bugtracker,该功能已经实现,并且是CMake 3.1的一部分.