[英]How to find .pc files for pkg-config via Conan and CMake
如何讓 pkg-config 找到通過 Conan 安裝的依賴項和不在 Conan 中的依賴項?
我的目標包是使用 CMake 構建的,並使用 pkg-config 和pkg_check_modules()
查找其依賴項。 其中一個依賴項 ( glib-2.0
) 是通過 Conan 安裝的,另一個 ( libsecret-1
) 不是,因為沒有包。
在我的 conanfile 中,我將 pkg-config_installer 配置為構建要求( self.build_requires("pkg-config_installer/0.29.2@bincrafters/stable")
。構建包時,CMake 正確調用此 pkg-config。
結果,pkg-config 找到 glib 就好了,但它找不到 libsecret。 我假設它找到了通過 Conan 安裝的依賴項的.pc
文件,但沒有找到libsecret-1.pc
,它位於我的系統上的/usr/lib/pkgconfig/
。
我試着告訴柯南的 CMake 工具使用這個路徑: tools.PkgConfig("libsecret-1").variables["pcfiledir"]
告訴我它在哪里,CMake 工具的配置方法有一個pkg_config_paths
參數。 不幸的是,這沒有任何改變。
以下步驟使其對我有用:
PKG_CONFIG_PATH
環境變量設置為pcfiledir
找到的tools.PkgConfig
pkg_config_paths
傳遞給tools.CMake.configure()
,它不能很好地處理絕對路徑並與環境變量沖突package_info
步驟中將系統范圍內安裝的庫(在我的情況下為secret-1
)添加到cpp_info.system_libs
感謝@uilianries 的有用評論!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.