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>] # since 5.41.0
[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
. Since 5.41.0.
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.