UsePkgConfig¶
自 3.0 版本起已弃用: 此模块不应再使用。请改用 FindPkgConfig
模块或 cmake_pkg_config()
命令。
此模块提供了一个使用 pkg-config
命令行实用程序查找外部包的宏。它已被更方便的 FindPkgConfig
模块取代,该模块通常在 Find Modules 中使用。
截至 CMake 3.31,内置的 cmake_pkg_config()
命令提供了更多提取包信息的功能。
宏¶
此模块定义了以下宏
- pkgconfig¶
使用
pkg-config
查找外部包并设置结果变量pkgconfig(<package> <includedir> <libdir> <linkflags> <cflags>)
此宏调用
pkg-config
命令行实用程序以将包信息检索到指定的变量中。如果找不到pkg-config
或指定的包<package>
,则结果变量将保持为空。参数为
<package>
包名,如在其 PC 元数据文件 (
<package>.pc
) 中定义的。<includedir>
用于存储包包含目录的变量名。
<libdir>
用于存储包含包库的目录的变量名。
<linkflags>
用于存储包链接器标志的变量名。
<cflags>
用于存储包编译器标志的变量名。
示例¶
使用此模块会将所需信息填充到四个给定的变量中
include(UsePkgConfig)
pkgconfig(
libart-2.0
LIBART_INCLUDEDIR
LIBART_LIBDIR
LIBART_LDFLAGS
LIBART_CFLAGS
)
迁移到 FindPkgConfig
看起来会是这样的
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(LIBART QUIET libart-2.0)
endif()
message(STATUS "LIBART_INCLUDEDIR=${LIBART_INCLUDEDIR}")
message(STATUS "LIBART_LIBDIR=${LIBART_LIBDIR}")
message(STATUS "LIBART_LDFLAGS=${LIBART_LDFLAGS}")
message(STATUS "LIBART_CFLAGS=${LIBART_CFLAGS}")