UsePkgConfig — CMake 4.1.4 Documentation

# UsePkgConfig

Deprecated since version 3.0: This module should no longer be used. Instead, use the `FindPkgConfig` module or the `cmake_pkg_config()` command.

This module provided a macro for finding external packages using `pkg-config` command-line utility. It has been replaced by the more convenient `FindPkgConfig` module, which is commonly used in Find Modules.

As of CMake 3.31, the built-in `cmake_pkg_config()` command provides even more features to extract package information.

## Macros

This module defines the following macro:

pkgconfig

  Finds external package using `pkg-config` and sets result variables:

      pkgconfig(<package> <includedir> <libdir> <linkflags> <cflags>)

  This macro invokes `pkg-config` command-line utility to retrieve the package information into specified variables. If `pkg-config` or the specified package `<package>` is NOT found, the result variables remain empty.

  The arguments are:

  `<package>`

    Name of the package as defined in its PC metadata file (`<package>.pc`).

  `<includedir>`

    Variable name to store the package's include directory.

  `<libdir>`

    Variable name to store the directory containing the package library.

  `<linkflags>`

    Variable name to store the linker flags for the package.

  `<cflags>`

    Variable name to store the compiler flags for the package.

## Examples

Using this module fills the desired information into the four given variables:

    include(UsePkgConfig)
    pkgconfig(
      libart-2.0
      LIBART_INCLUDEDIR
      LIBART_LIBDIR
      LIBART_LDFLAGS
      LIBART_CFLAGS
    )

Migrating to the `FindPkgConfig` would look something like this:

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