cmake fortran

Tutorial de CMake



fortran (6)

¿Alguien puede proporcionar enlaces a un buen tutorial de CMake, excepto uno oficial muy costoso y difícil de conseguir?

Especialmente interesante en el uso de CMake para proyectos de Fortran, pero agradeceré cualquier buen tutorial.

Actualizar.

Lo que ya encontré es artículos CMake en Kitware Public Wiki . El ejemplo de Fortran es absolutamente inútil. = (También mientras espero respuestas estoy jugando con SCons . Se ve bien. =)


Así es como lo logré hace un tiempo:

PROJECT(FORTRAN_APP CXX Fortran) SET(APP_NAME MyApp) ADD_EXECUTABLE(${APP_NAME} main.cpp test1.F test2.f test3.f90) SET_TARGET_PROPERTIES(${APP_NAME} PROPERTIES LINKER_LANGUAGE CXX)

Referencia: lista de correo de CMake


Fortran debería ser más o menos lo mismo que C / C ++. Simplemente agregue los archivos .f o .f90 en lugar de los archivos .c o .cxx, y también incluya Fortran en la convocatoria del proyecto. CMake 2.8 tiene el mejor soporte para las versiones Fortran de CMake. CMake tiene un muy buen soporte de Fortran. Puede analizar el código fuente y ordenar la compilación en función de la generación requerida del archivo .mod que ocurrirá durante la compilación de Fortran. Si tiene preguntas específicas sobre Fortran o un compilador que no funciona, la lista de correo de CMake sería el lugar indicado.

Algo como esto:

project(testf C CXX Fortran) add_library(hello STATIC hello.f) add_library(world ${_SHARED} world.f world.def) add_executable(testf testf.f) target_link_libraries(testf hello world)

Eso es de la prueba Fortran en CMake: http://public.kitware.com/cgi-bin/viewcvs.cgi/Tests/Fortran/?root=CMake ( NO DISPONIBLE MÁS )

CMake también tiene un módulo para determinar el enlace C / Fortran:

http://public.kitware.com/cgi-bin/viewcvs.cgi/Modules/FortranCInterface.cmake?revision=1.19.2.2&root=CMake&view=markup


Para CMake mismo, esas referencias enumeradas en la respuesta anterior cubren bastante todo lo que puedes encontrar.

Según mi experiencia, practicar es lo mejor que puedes hacer y su documentación oficial en su sitio web siempre es el mejor recurso para referencia.

La parte más difícil de aprender CMake es cuando quieres hacer algunas cosas especiales que CMake no proporciona directamente, y tienes que encontrar la manera de hacerlo funcionar.

Hay algunos proyectos de código abierto que ya se han entregado con CMake, como Curl y Boost, si desea ver cómo se usa realmente CMake en un proyecto real súper complicado. Ese siempre es un buen lugar para comenzar.

Por cierto, el problema de SCon es su dependencia de Python y para nosotros, necesitamos construir en AIX / Solaris / Linux (CentOS y RedHat) / HP-UX. Entonces probablemente no quiera Python, especialmente las versiones más bajas no funcionan correctamente con CMake.


Primero, recomiendo una conferencia de introducción muy buena a CMake y herramientas relacionadas por Bill Hoffman disponible en YouTube:

CMake / CPack / CTest / CDash Herramientas de código abierto para compilar e implementar software de C ++

A continuación, realice una descripción general rápida y sienta las secuencias de comandos de CMake , examples rápidos y simples y también un poco de sabor a la sintaxis de CMake , por lo que le ayudará a leer las secuencias de comandos de CMake.

Ahora puede acceder inmediatamente al Tutorial que está disponible en CMake CVS. No se trata de hablar, sino del material de tutorial de código que se utiliza en el masterizado del libro de CMake. Ciertamente, deberá consultar el manual para conocer detalles sobre varias macros.

Después de comprender los fundamentos de CMake, puede comenzar a profundizar en técnicas más avanzadas y leer los archivos CMakeLists.txt existentes para ver cómo otros piratean los scripts de CMake.

Para ver ejemplos reales con un recorrido completo, consulte el tutorial de varias partes recientemente anunciado de Wigner GPU Lab en GitHub.

También hay un poco anticuado, el tutorial de dos partes de Bruno Abinader con buenos comentarios:

También puedo recomendar el enfoque empírico de CMAKE

También encontré que la documentación de KDE para los scripts CMake es muy útil. Incluye una muy buena introducción Development/Tutorials/CMake . Sin embargo, algunas características específicas de KDE y macros personalizadas pueden ser un poco molestas.

Creo que es un material bastante bueno para empezar. Además, no te olvides de las listas de correo de CMake con una comunidad muy útil.

¡El tutorial de "Mastering CMake" ahora en línea! - Bill Hoffman acaba de anunciar en la lista de correo. Aquí está CMake Tutorial ahora en la Web

Learning CMake (PDF) - tutorial escrito por Pau Garcia i Quiles

CMake: Primeros pasos : tutorial completo de Wiki del proyecto MASH.

Aquí hay un video del webinar grabado en marzo de 2012 - Introducción a CMake , muy recomendable.

The Ultimate Guide to Modern CMake de Rico Huijbers, dedicada a proyectos C / C ++, también explica los objetivos importados / exportados y los archivos de configuración del proyecto.

Aquí está el repositorio Git con la presentación tutorial de CMake preparada por Eric Noulard disponible en varios formatos imprimibles.

Aquí hay un PDF de 50 páginas con Learning CMake por Pau Garcia i Quiles.

Los desarrolladores de Fortran, pero no solo, pueden encontrar útiles estos dos artículos:

Finalmente, existe el proyecto Awesome CMake que mantiene la lista seleccionada de impresionantes scripts, módulos, ejemplos de CMake y otros.

Por favor, informe cualquier enlace roto en los comentarios a continuación.


Qué tal esto:

cmake_minimum_required (VERSION 2.6) project (hello) enable_language (Fortran) add_executable (hello hello.for)

Tener un archivo .for como este:

Program heyDEM write (*,*) ''Hello heyDEM!'' End Program heyDEM

Es muy básico, pero debería ayudar como introducción


Solo para informarle que he movido mi blog a un nuevo host ( http://brunoabinader.com ) y que también se movieron los tutoriales de CMake ( enlace de publicación ). Tengo la intención de continuar la serie de tutoriales sobre temas como internacionalización (i18n), documentación (doxygen, qdoc), integración de pruebas unitarias, modos de depuración / liberación, soporte multiplataforma y otros.