project
Set a name, version, and enable languages for the entire project.
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 PROJECT_NAME
variable. Additionally this sets variables
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 CMP0048
is set to NEW
.
The project()
command stores the version number and its components in variables
-
PROJECT_VERSION
,<PROJECT-NAME>_VERSION
-
PROJECT_VERSION_MAJOR
,<PROJECT-NAME>_VERSION_MAJOR
-
PROJECT_VERSION_MINOR
,<PROJECT-NAME>_VERSION_MINOR
-
PROJECT_VERSION_PATCH
,<PROJECT-NAME>_VERSION_PATCH
-
PROJECT_VERSION_TWEAK
,<PROJECT-NAME>_VERSION_TWEAK
Variables corresponding to unspecified versions are set to the empty string (if 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 given. Specify language NONE
, or use the LANGUAGES
keyword and list no languages, to skip enabling any languages.
If a variable exists called CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
, the file pointed to by that variable will be included as the last step of the project command.
The top-level CMakeLists.txt
file for a project must contain a literal, direct call to the project()
command; loading one through the include()
command is not sufficient. If no such call exists CMake will implicitly add one to the top that enables the default languages (C
and CXX
).
Note
Call the cmake_minimum_required()
command at the beginning of the top-level CMakeLists.txt
file even before calling the project()
command. It is important to establish version and policy settings before invoking other commands whose behavior they may affect. See also policy CMP0000
.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/command/project.html