【发布时间】:2020-02-18 11:32:56
【问题描述】:
如何让 pkg-config 找到通过柯南安装的依赖项和不在柯南中的依赖项?
我的目标包是使用 CMake 构建的,并使用带有 pkg_check_modules() 的 pkg-config 找到它的依赖项。其中一个依赖项(glib-2.0)是通过柯南安装的,另一个(libsecret-1)不是,因为没有包。
在我的 conanfile 中,我将 pkg-config_installer 配置为构建要求 (self.build_requires("pkg-config_installer/0.29.2@bincrafters/stable")。构建包时,CMake 会正确调用此 pkg-config。
结果,pkg-config 找到 glib 就好了,但它找不到 libsecret。我假设它找到了通过柯南安装的依赖项的.pc 文件,但没有找到位于我系统上的/usr/lib/pkgconfig/ 的libsecret-1.pc。
我尝试告诉柯南的 CMake 工具使用此路径:tools.PkgConfig("libsecret-1").variables["pcfiledir"] 告诉我它在哪里,并且 CMake 工具的配置方法有一个 pkg_config_paths 参数。不幸的是,这没有任何改变。
【问题讨论】:
-
查看文档:docs.conan.io/en/latest/integrations/build_system/… 您有 3 种不同的方法来自定义前缀。您可以附加 PKG_CONFIG_PATH,设置 --define-prefix 参数甚至设置 PKG_CONFIG_$PACKAGE_$VARIABLE
标签: c++ cmake pkg-config conan