- CMake
-
CMake Desarrollador Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf
www.cmake.orgInformación general Última versión estable 2.8.5 (info)
14 de julio de 2011Género Herramienta de programación Programado en C++ Sistema operativo Multiplataforma Licencia Licencia BSD En español ? CMake es una 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.
CMake 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. Cmake 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 y Microsoft 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.
Contenido
Historia
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 comiezons 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 sustema de visualización paralela para el Advanced Computing Lab en Los Alamos National Laboratory.
Documentación y tutoriales
Aparte de la documentación oficial de CMake, existe un libro titulado Mastering CMake, publicado por Kitware.
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
CTest, CPack, CDash
Kitware desarrolló estas herramientas en colaboración con muchos otros. Incluyen CMake, CTest, CPack y CDash. CPack es una utilidad de empaquetamiento y despliegue. CTest es un cliente de pruebas libre.
Aplicaciones que utilizan CMake
- Avidemux
- Compiz
- Kicad
- LMMS
- MiKTeX
- MuseScore
- MySQL
- OpenCV
- Poppler
- PvPGN
- Quantum GIS
- Scribus
- Second Life
- SuperTux
Véase también
Enlaces externos
Categorías:- Herramientas de programación
- Software
- Programación
Wikimedia foundation. 2010.