diff options
author | Brad King <brad.king@kitware.com> | 2014-01-29 14:28:01 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-01-29 14:45:18 (GMT) |
commit | 7e142c5ac2be11097f7ff905b1606179803043d7 (patch) | |
tree | d7565d46f43fa420270d0111bd30e5279c58c9dc /Help/command/project.rst | |
parent | 16d040c958c68c38b2c0642b4094245af28c1910 (diff) | |
download | CMake-7e142c5ac2be11097f7ff905b1606179803043d7.zip CMake-7e142c5ac2be11097f7ff905b1606179803043d7.tar.gz CMake-7e142c5ac2be11097f7ff905b1606179803043d7.tar.bz2 |
project: Manage VERSION variables
Teach the project() command to set variables
{PROJECT,<PROJECT-NAME>}_VERSION{,_MAJOR,_MINOR,_PATCH,_TWEAK}
holding the project version number and its components. Add project()
command option "VERSION" to specify the version explicitly, and default
to the empty string when it is not given.
Since this clears variables when no VERSION is given, this may change
behavior for existing projects that set the version variables themselves
prior to calling project(). Add policy CMP0048 for compatibility.
Suggested-by: Alex Neundorf <neundorf@kde.org>
Diffstat (limited to 'Help/command/project.rst')
-rw-r--r-- | Help/command/project.rst | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Help/command/project.rst b/Help/command/project.rst index aabab65..c601a01 100644 --- a/Help/command/project.rst +++ b/Help/command/project.rst @@ -1,11 +1,14 @@ project ------- -Set a name and enable languages for the entire project. +Set a name, version, and enable languages for the entire project. .. code-block:: cmake project(<PROJECT-NAME> [LANGUAGES] [<language-name>...]) + project(<PROJECT-NAME> + [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] + [LANGUAGES <language-name>...]) Sets the name of the project and stores the name in the :variable:`PROJECT_NAME` variable. Additionally this sets variables @@ -15,6 +18,28 @@ Sets the name of the project and stores the name in the * :variable:`PROJECT_BINARY_DIR`, :variable:`<PROJECT-NAME>_BINARY_DIR` +If ``VERSION`` is specified, given components must be non-negative integers. +If ``VERSION`` is not specified, the default version is the empty string. +The ``VERSION`` option may not be used unless policy :policy:`CMP0048` is +set to ``NEW``. + +The :command:`project()` command stores the version number and its components +in variables + +* :variable:`PROJECT_VERSION`, + :variable:`<PROJECT-NAME>_VERSION` +* :variable:`PROJECT_VERSION_MAJOR`, + :variable:`<PROJECT-NAME>_VERSION_MAJOR` +* :variable:`PROJECT_VERSION_MINOR`, + :variable:`<PROJECT-NAME>_VERSION_MINOR` +* :variable:`PROJECT_VERSION_PATCH`, + :variable:`<PROJECT-NAME>_VERSION_PATCH` +* :variable:`PROJECT_VERSION_TWEAK`, + :variable:`<PROJECT-NAME>_VERSION_TWEAK` + +Variables corresponding to unspecified versions are set to the empty string +(if policy :policy:`CMP0048` is set to ``NEW``). + Optionally you can specify which languages your project supports. Example languages are ``C``, ``CXX`` (i.e. C++), ``Fortran``, etc. By default ``C`` and ``CXX`` are enabled if no language options are |