CMake

CMake
Información sobre la plantilla
CMake.jpeg
Herramienta multiplataforma de generación o automatización de código
DesarrolladorAndy Cedilnik
Bill Hoffman
Brad King
Ken Martin
Alexander Neundorf
Fecha de Creación2011
Última versión estable2.8.6
Sistemas Operativos compatiblesMultiplataforma

CMake. Herramienta multiplataforma de generación o automatización de código. El nombre es una abreviatura para "cross platform make" (make multiplataforma); más allá del uso de "make" en el nombre, CMake es una suite separada y de más alto nivel que el sistema make común de Unix, siendo similar a las Autotools.

Generalidades

Es una familia de herramientas diseñada para construir, probar y empaquetar software. CMake se utiliza para controlar el proceso de compilación del software usando ficheros de configuración sencillos e independientes de la plataforma.

Genera Makefiles nativos y espacios de trabajo que pueden usarse en el entorno de desarrollo deseado. Es comparable al GNU build system de Unix en que el proceso es controlado por ficheros de configuración, en el caso de CMake llamados CMakeLists.txt.

Al contrario que el GNU build system, que está restringido a plataformas Unix, CMake soporta la generación de ficheros para varios sistemas operativos, lo que facilita el mantenimiento y elimina la necesidad de tener varios conjuntos de ficheros para cada plataforma.

El proceso de construcción se controla creando uno o más ficheros CMakeLists.txt en cada directorio (incluyendo subdirectorios). Cada CMakeLists.txt consiste en uno o más comandos. Cada comando tiene la forma COMANDO (argumentos...) donde COMANDO es el nombre del comando, y argumentos es una lista de argumentos separados por espacios.

CMake provee comandos predefinidos y definidos por el usuario. Existen generadores makefile para Unix, Borland make, Watcom make,MinGW, MSYS yMicrosoft NMake.

También es posible generar ficheros de proyecto para Code: Blocks, Eclipse CDT, Microsoft Visual Studio de la 6 a la 10 incluyendo versiones de 64 bits y KDevelop.

Historia

Logo CMake

Se creó en respuesta a la necesidad de disponer de un entorno multiplataforma apropiado de construcción para el Insight Segmentation and Registration Toolkit (ITK) creado por la United States National Library of Medicine como parte del Visible Human Project.

Fue influenciado por un sistema anterior llamado pcmaker creado por Ken Martin y otros desarrolladores para soportar el Visualization Toolkit (VTK), un sistema para gráficos 3D y visualización libres.

Para crear CMake, Bill Hoffman en Kitware incorporó algunas ideas de pcmaker, y añadió más cosas propias, con el pensamiento de adoptar algunas de las funcionalidades del GNU build system. La implementación inicial de CMake tuvo lugar a mediadodos del 2000, con un desarrollo acelerado a comiezos del 2001.

Muchas mejoras se debieron a influencias de otros desarrolladores a la hora de incorporar CMake a sus propios sistemas. Por ejemplo, la comunidad de VXL adoptó CMake, contribuyendo con muchas características esenciales.

Brad King añadió varias características para dar soporte a CABLE y GCC-XML, un juego de herramientas de envoltura automáticas; y GE Corporate R&D necesitaba soporte para su infraestructura de pruebas (DART). Otras funcionalidades se añadieron para soportar la transición de VTK's a CMake, y soportar ParaView, un sistema de visualización paralela para el Advanced Computing Lab en Los Alamos National Laboratory.

Principales funcionalidades

  • Ficheros de configuración escritos en un lenguaje de scripting específico para CMake
  • Análisis automático de dependencias para C, C++, Fortran, y Java
  • Soporte para SWIG, Qt, FLTK, a través del lenguaje de scripting de CMake
  • Soporte para varias versiones de Microsoft Visual Studio, incluyendo la 6, 7, 7.1, 8.0, 9.0 y 10.0
  • Genera ficheros para Eclipse CDT (C/C++ Development Tools)
  • Detección de cambios en ficheros usando timestamps tradicionales
  • Soporte para builds paralelos
  • Compilador cruzado
  • Vista global de todas las dependencias, usando CMake para generar un diagrama graphviz
  • Soporte para builds multiplataforma
  • Linux y otros sistemas POSIX (incluyendo AIX, *BSD, HP-UX, IRIX/SGI, y Solaris)
  • Mac OS X
  • Windows 95/98/NT/2000/XP, Windows Vista, Windows 7 y MinGW/MSYS
  • Integrado con DART (software), CDash, CTest y CPack, una colección de herramientas para prueba y liberación de software

Aplicaciones que utilizan CMake

Versiones de CMake

  • La última versión (2.8.3)

La versión 2.8.3 fue empaquetado con CPack que se incluye como parte de la versión 2.8.3. Los archivos SH son libre extracción de archivos tar gziped. Para instalar un archivo. Sh, ejecuta con / bin / sh y siga las instrucciones. Los archivos del sistema operativo machine.tar.gz son gziped archivos tar del árbol de instalación. Los archivos del sistema operativo machine.tar.Z se comprimen los archivos tar del árbol de instalación. Las distribuciones de archivo tar puede untared en cualquier directorio. Son precedidos por la versión de CMake. Por ejemplo, el archivo tar SunOS-sparc es todo en el directorio cmake-2.8.3-SunOS-sparc.

Este prefijo se puede quitar, siempre y cuando la cuota, depósito, el hombre y directorios doc se mueven uno respecto al otro. Para construir las distribuciones de código fuente, descomprimir con zip o alquitrán y siga las instrucciones de Readme.txt en la parte superior del árbol de código fuente.

  • Versión anterior (2.6.4)

La versión 2.6.4 fue empaquetado con CPack que se incluye como parte de la versión 2.6.4. Los archivos. SH son libre extracción de archivos tar gziped. Para instalar un archivo. Sh, ejecuta con / bin / sh y siga las instrucciones. Los archivos del sistema operativo machine.tar.gz son gziped archivos tar del árbol de instalación. Los archivos del sistema operativo machine.tar.Z se comprimen los archivos tar del árbol de instalación Las distribuciones de archivo tar puede untared en cualquier directorio Son precedidos por la versión de Cmake.

Por ejemplo, el archivo tar SunOS-sparc es todo en el directorio cmake-2.6.2-SunOS-sparc Este prefijo se puede quitar, siempre y cuando la cuota, depósito, el hombre y directorios doc se mueven uno respecto al otro.

Fuente