ECMSetupVersionΒΆ
Handle library version information.
ecm_setup_version(<version>
VARIABLE_PREFIX <prefix>
[SOVERSION <soversion>]
[VERSION_HEADER <filename>]
[PACKAGE_VERSION_FILE <filename> [COMPATIBILITY <compat>]] )
This parses a version string and sets up a standard set of version variables. It can optionally also create a C version header file and a CMake package version file to install along with the library.
If the <version>
argument is of the form <major>.<minor>.<patch>
(or <major>.<minor>.<patch>.<tweak>
), The following CMake variables are
set:
<prefix>_VERSION_MAJOR - <major>
<prefix>_VERSION_MINOR - <minor>
<prefix>_VERSION_PATCH - <patch>
<prefix>_VERSION - <version>
<prefix>_SOVERSION - <soversion>, or <major> if SOVERSION was not given
For backward-compatibility also this variable is set (only if the minimum required version of ECM is < 5.83):
<prefix>_VERSION_STRING - <version> (use <prefix>_VERSION instead)
If CMake policy CMP0048 is not NEW
, the following CMake variables will also
be set:
PROJECT_VERSION_MAJOR - <major>
PROJECT_VERSION_MINOR - <minor>
PROJECT_VERSION_PATCH - <patch>
PROJECT_VERSION - <version>
For backward-compatibility, if CMake policy CMP0048 is not NEW
, also this variable is set
(only if the minimum required version of ECM is < 5.83):
PROJECT_VERSION_STRING - <version> (use PROJECT_VERSION instead)
If the VERSION_HEADER
option is used, a simple C header is generated with the
given filename. If filename is a relative path, it is interpreted as relative
to CMAKE_CURRENT_BINARY_DIR
. The generated header contains the following
macros:
<prefix>_VERSION_MAJOR - <major> as an integer
<prefix>_VERSION_MINOR - <minor> as an integer
<prefix>_VERSION_PATCH - <patch> as an integer
<prefix>_VERSION_STRING - <version> as a C string
<prefix>_VERSION - the version as an integer
<prefix>_VERSION
has <patch>
in the bottom 8 bits, <minor>
in the
next 8 bits and <major>
in the remaining bits. Note that <patch>
and
<minor>
must be less than 256.
If the PACKAGE_VERSION_FILE
option is used, a simple CMake package version
file is created using the write_basic_package_version_file()
macro provided by
CMake. It should be installed in the same location as the Config.cmake file of
the library so that it can be found by find_package()
. If the filename is a
relative path, it is interpreted as relative to CMAKE_CURRENT_BINARY_DIR
. The
optional COMPATIBILITY
option is forwarded to
write_basic_package_version_file()
, and defaults to AnyNewerVersion
.
If CMake policy CMP0048 is NEW
, an alternative form of the command is
available:
ecm_setup_version(PROJECT
[VARIABLE_PREFIX <prefix>]
[SOVERSION <soversion>]
[VERSION_HEADER <filename>]
[PACKAGE_VERSION_FILE <filename>] )
This will use the version information set by the project()
command.
VARIABLE_PREFIX
defaults to the project name. Note that PROJECT
must be the
first argument. In all other respects, it behaves like the other form of the
command.
Since pre-1.0.0.
COMPATIBILITY
option available since 1.6.0.