Establezca un nombre, una versión y habilite los idiomas para todo el proyecto.
project(<PROJECT-NAME> )project(<PROJECT-NAME> ]]] )
Establezca el nombre del proyecto y almacene el nombre en la variablePROJECT_NAME
. Además, esto establece las variables
-
PROJECT_SOURCE_DIR
,<PROJECT-NAME>_SOURCE_DIR
-
PROJECT_BINARY_DIR
,<PROJECT-NAME>_BINARY_DIR
Si se especifica VERSION
, los componentes dados deben ser enteros no negativos.Si no se especifica VERSION
, la versión por defecto es la cadena vacía.La opción VERSION
no puede utilizarse a menos que la política CMP0048
se establezca en NEW
.
El comando project()
almacena el número de versión y sus componentes en las 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
Las variables correspondientes a versiones no especificadas se establecen en la cadena vacía (si la política CMP0048
se establece en NEW
).
Opcionalmente puede especificar qué lenguajes soporta su proyecto.Ejemplos de lenguajes son C
, CXX
(es decir, C++), Fortran
, etc.Por defecto C
y CXX
están habilitados si no se dan opciones de lenguaje. Especifique el lenguaje NONE
, o use la palabra clave LANGUAGES
y no liste ningún lenguaje, para omitir la habilitación de cualquier lenguaje.
Si existe una variable llamada CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
, el archivo apuntado por esa variable se incluirá como el último paso del comandoproject.
El archivo de nivel superior CMakeLists.txt
para un proyecto debe contener una llamada literal y directa al comando project()
; cargar uno a través del comando include()
no es suficiente. Si no existe tal llamada, CMake añadirá implícitamente una al principio que habilite los lenguajes por defecto (C
y CXX
).
Nota
Llame al comando cmake_minimum_required()
al principio del archivo de nivel superior CMakeLists.txt
incluso antes de llamar al comandoproject()
. Es importante establecer la configuración de la versión y la política antes de invocar otros comandos cuyo comportamiento pueden afectar. Ver también política CMP0000
.