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}")