对于外部库,用户可以通过添加CMAKE_FLAGS
的路径或添加-DMYLIB_ROOT
来指定非标准位置。在CMake脚本中,我想找到库的pkg-config pc文件。因为pc文件不在标准文件夹中,所以pkg-config找不到FindPkgConfig
的{{1}}。
我尝试将用户指定的路径添加到pkg_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})
...
设置从终端调用pkg-config时,它会找到pc文件。我究竟做错了什么?我怎样才能PKG_CONFIG_PATH
工作?我想避免直接从CMake调用pkg-config。
答案 0 :(得分:13)
以下可能会完成这项工作
set( ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig" )
答案 1 :(得分:8)
这是一个已知问题和ticket exists in CMake's bugtracker,但由于缺乏开发人员的兴趣而被重新锁定。我想首先必须提供补丁......
编辑:根据bugtracker的说法,该功能已经实施,并且是CMake 3.1的一部分。