2012-02-14 9 views
25

Estoy tratando de aprender a usar CMake para convertir un conjunto de Makefiles relativamente grande y algo crujiente para un proyecto de tamaño medio a grande. Tenemos bastantes reglas de fabricación complicadas (código generado, conjuntos de pruebas que 'deben bloquearse', grandes conjuntos de opciones para valgrind, helgrind, drd, etc., etc.). Sé un poco de autotools, pero el proyecto preferiría CMake así que aquí estamos.¿Cuál es la mejor referencia gratuita para CMake?

He aprendido lo que puedo de la wiki y algunos blogs, pero la documentación parece bastante delgada. ¿Me estoy perdiendo de algo? Veo muchas referencias a "Mastering CMake", pero comprar un libro para aprender a utilizar un proyecto de código abierto (que parece estar en desarrollo ... paralelo 'make test' solo se implementó recientemente) deja un mal sabor de boca .

+2

¿Está relacionado con autotools, C o incluso hacer? Quitaría las etiquetas y dejaría solo CMake. –

Respuesta

13

En mi opinión, la mejor referencia es una combinación de ejemplos en línea (especialmente en bibliotecas de kitware) y también la ayuda incorporada (cmake --help) junto con la suscripción a la lista de correo. O al menos así es como aprendí a usar CMake. Lo he usado con todos mis nuevos proyectos desde mediados de 2008. Tengo el libro y lo utilicé más para empezar, pero como temía, ciertamente no abarca todo en CMake, especialmente las nuevas características.

+6

Esperaba que no dijeras eso. Algo acerca de que la mejor documentación es la documentación fuera de banda me da los nervios de punta. Veremos cómo va, supongo. – leif

+0

Generalmente hay una buena ayuda en la lista de correo si puede dar una buena descripción de su problema o puede publicar aquí. No he estado aquí lo suficiente en este foro para juzgar la calidad de la ayuda. Encontrarás los desarrolladores de la publicación CMake en ambos. – drescherjm

+1

Resulta que 'cmake --help- *' es la mejor documentación que existe (y en realidad es bastante buena). Gracias. – leif

4

A partir de 2016, CMake es un sistema de compilación extremadamente sofisticado y potente compuesto por 117 comandos, 231 módulos y 404 variables. Usarlo correctamente requiere al menos pasar el conocimiento de sus muchas capacidades. Por lo tanto, propongo que tratar de aprender CMake en base al conocimiento adquirido a través de cmake --help o la información de la lista de correo como se describió anteriormente ya no es práctico.

Sin embargo, hasta ahora no he encontrado documentación en PDF útil y gratuita. El online documentation at cmake.org es gratuito, actual y completo, pero el acceso está basado en el navegador y es incómodo localizar rápidamente la información por palabra clave; Básicamente es una búsqueda de araña. El mismo contenido es offered as a .qch file, pero para navegar necesito instalar el completo QT framework (más de 900 MB en Windows).

Por lo tanto, hasta ahora la mejor referencia gratuita que he encontrado está en devdocs.io. Sospecho que DevDocs 'CMake Reference Documentation es simplemente la versión QT del material de cmake.org presentado a través de una interfaz web, pero es mejor "marcada" que la referencia en línea de cmake.org, y si usa el de DevDoc Seleccione el menú de documentación en la parte inferior izquierda su pantalla para eliminar todos excepto CMake, puede usar el cuadro de búsqueda de DevDocs en la parte superior izquierda de su pantalla para encontrar rápidamente todas las referencias a cualquier palabra clave en cualquier encabezado de sección.

Aunque DevDocs se basa en el navegador, hay un medio de descargar toda la documentación de CMake para su uso sin conexión.

P.S .: Acabo de descubrir CMake Tutorial – excerpt from Mastering CMake, que parece ser una introducción gratuita muy útil.

2

Encontré [ this ] recurso para comenzar con lo que de hecho en un buen recurso para empezar, si eres un principiante.
Mastering CMake 6ª edición.

+1

Llamarlo un recurso excelente es omho demasiado descabellado. – rbaleksandar

+0

Encontré útil la plataforma de diapositivas para explicar algunos conceptos clave. –

Cuestiones relacionadas