CPackRPM
: The builtin (binary) CPack RPM generator (Unix only)CPackRPM may be used to create RPM package using CPack. CPackRPM is a CPack generator thus it uses the CPACK_XXX variables used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration
However CPackRPM has specific features which are controlled by the specifics CPACK_RPM_XXX variables. Usually those vars correspond to RPM spec file entities, one may find information about spec files here http://www.rpm.org/wiki/Docs. You'll find a detailed usage of CPackRPM on the wiki:
http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#RPM_.28Unix_Only.29
However as a handy reminder here comes the list of specific variables:
CPACK_RPM_PACKAGE_SUMMARY
Mandatory : YES
Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY
The RPM package summary
CPACK_RPM_PACKAGE_NAME
Mandatory : YES
Default : CPACK_PACKAGE_NAME
The RPM package name
CPACK_RPM_PACKAGE_VERSION
Mandatory : YES
Default : CPACK_PACKAGE_VERSION
The RPM package version
CPACK_RPM_PACKAGE_ARCHITECTURE
Mandatory : NO
Default : -
The RPM package architecture. This may be set to "noarch" if you
know you are building a noarch package.
CPACK_RPM_PACKAGE_RELEASE
Mandatory : YES
Default : 1
The RPM package release. This is the numbering of the RPM package
itself, i.e. the version of the packaging and not the version of the
content (see CPACK_RPM_PACKAGE_VERSION). One may change the default
value if the previous packaging was buggy and/or you want to put here
a fancy Linux distro specific numbering.
CPACK_RPM_PACKAGE_LICENSE
Mandatory : YES
Default : "unknown"
The RPM package license policy.
CPACK_RPM_PACKAGE_GROUP
Mandatory : YES
Default : "unknown"
The RPM package group.
CPACK_RPM_PACKAGE_VENDOR
Mandatory : YES
Default : CPACK_PACKAGE_VENDOR if set or "unknown"
The RPM package vendor.
CPACK_RPM_PACKAGE_URL
Mandatory : NO
Default : -
The projects URL.
CPACK_RPM_PACKAGE_DESCRIPTION
Mandatory : YES
Default : CPACK_PACKAGE_DESCRIPTION_FILE if set or "no package description available"
CPACK_RPM_COMPRESSION_TYPE
Mandatory : NO
Default : -
May be used to override RPM compression type to be used
to build the RPM. For example some Linux distribution now default
to lzma or xz compression whereas older cannot use such RPM.
Using this one can enforce compression type to be used.
Possible value are: lzma, xz, bzip2 and gzip.
CPACK_RPM_PACKAGE_REQUIRES
Mandatory : NO
Default : -
May be used to set RPM dependencies (requires).
Note that you must enclose the complete requires string between quotes,
for example:
set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
The required package list of an RPM file could be printed with
rpm -qp --requires file.rpm
CPACK_RPM_PACKAGE_SUGGESTS
Mandatory : NO
Default : -
May be used to set weak RPM dependencies (suggests).
Note that you must enclose the complete requires string between quotes.
CPACK_RPM_PACKAGE_PROVIDES
Mandatory : NO
Default : -
May be used to set RPM dependencies (provides).
The provided package list of an RPM file could be printed with
rpm -qp --provides file.rpm
CPACK_RPM_PACKAGE_OBSOLETES
Mandatory : NO
Default : -
May be used to set RPM packages that are obsoleted by this one.
CPACK_RPM_PACKAGE_RELOCATABLE
Mandatory : NO
Default : CPACK_PACKAGE_RELOCATABLE
If this variable is set to TRUE or ON CPackRPM will try
to build a relocatable RPM package. A relocatable RPM may
be installed using rpm --prefix or --relocate in order to
install it at an alternate place see rpm(8).
Note that currently this may fail if CPACK_SET_DESTDIR is set to ON.
If CPACK_SET_DESTDIR is set then you will get a warning message
but if there is file installed with absolute path you'll get
unexpected behavior.
CPACK_RPM_SPEC_INSTALL_POST
Mandatory : NO
Default : -
May be used to set an RPM post-install command inside the spec file.
For example setting it to "/bin/true" may be used to prevent
rpmbuild to strip binaries.
CPACK_RPM_SPEC_MORE_DEFINE
Mandatory : NO
Default : -
May be used to add any %define lines to the generated spec file.
CPACK_RPM_PACKAGE_DEBUG
Mandatory : NO
Default : -
May be set when invoking cpack in order to trace debug information
during CPack RPM run. For example you may launch CPack like this
cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
CPACK_RPM_USER_BINARY_SPECFILE
Mandatory : NO
Default : -
May be set by the user in order to specify a USER binary spec file
to be used by CPackRPM instead of generating the file.
The specified file will be processed by CONFIGURE_FILE( @ONLY).
CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
Mandatory : NO
Default : -
If set CPack will generate a template for USER specified binary
spec file and stop with an error. For example launch CPack like this
cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
The user may then use this file in order to hand-craft is own
binary spec file which may be used with CPACK_RPM_USER_BINARY_SPECFILE.
CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
Mandatory : NO
Default : -
May be used to embed a pre (un)installation script in the spec file.
The refered script file(s) will be read and directly
put after the %pre or %preun section
If CPACK_RPM_COMPONENT_INSTALL is set to ON the (un)install script for
each component can be overriden with
CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE and
CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE
One may verify which scriptlet has been included with
rpm -qp --scripts package.rpm
CPACK_RPM_POST_INSTALL_SCRIPT_FILE
CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
Mandatory : NO
Default : -
May be used to embed a post (un)installation script in the spec file.
The refered script file(s) will be read and directly
put after the %post or %postun section
If CPACK_RPM_COMPONENT_INSTALL is set to ON the (un)install script for
each component can be overriden with
CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE and
CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE
One may verify which scriptlet has been included with
rpm -qp --scripts package.rpm
CPACK_RPM_CHANGELOG_FILE
Mandatory : NO
Default : -
May be used to embed a changelog in the spec file.
The refered file will be read and directly put after the %changelog
section.