ECMGeneratePkgConfigFile

Generate a pkg-config file for the benefit of autotools-based projects.

ecm_generate_pkgconfig_file(BASE_NAME <baseName>
                      [LIB_NAME <libName>]
                      [DEPS "<dep> [<dep> [...]]"]
                      [FILENAME_VAR <filename_variable>]
                      [INCLUDE_INSTALL_DIR <dir>]
                      [LIB_INSTALL_DIR <dir>]
                      [DEFINES -D<variable=value>...]
                      [DESCRIPTION <library description>]
                      [INSTALL])

BASE_NAME is the name of the module. It’s the name projects will use to find the module.

LIB_NAME is the name of the library that is being exported. If undefined, it will default to the BASE_NAME. That means the LIB_NAME will be set as the name field as well as the library to link to.

FILENAME_VAR is specified with a variable name. This variable will receive the location of the generated file will be set, within the build directory. This way it can be used in case some processing is required. See also INSTALL.

INCLUDE_INSTALL_DIR specifies where the includes will be installed. If it’s not specified, it will default to INSTALL_INCLUDEDIR, CMAKE_INSTALL_INCLUDEDIR or just “include/” in case they are specified, with the BASE_NAME postfixed.

LIB_INSTALL_DIR specifies where the library is being installed. If it’s not specified, it will default to LIB_INSTALL_DIR, CMAKE_INSTALL_LIBDIR or just “lib/” in case they are specified.

DEFINES is a list of preprocessor defines that it is recommended users of the library pass to the compiler when using it.

DESCRIPTION describes what this library is. If it’s not specified, CMake will first try to get the description from the metainfo.yaml file or will create one based on LIB_NAME.

INSTALL will cause the module to be installed to the pkgconfig subdirectory of LIB_INSTALL_DIR, unless the ECM_PKGCONFIG_INSTALL_DIR cache variable is set to something different. Note that the first call to ecm_generate_pkgconfig_file with the INSTALL argument will cause ECM_PKGCONFIG_INSTALL_DIR to be set to the cache, and will be used in any subsequent calls.

To properly use this macro a version needs to be set. To retrieve it, ECM_PKGCONFIG_INSTALL_DIR uses PROJECT_VERSION. To set it, use the project() command (only available since CMake 3.0) or the ecm_setup_version() macro.

Example usage:

ecm_generate_pkgconfig_file(
    BASE_NAME KF5Archive
    DEPS Qt5Core
    FILENAME_VAR pkgconfig_filename
    INSTALL
)

Since 1.3.0. DESCRIPTION available since 5.1.41