2010-02-02 11 views
89

Qualcuno può fornire collegamenti a un buon tutorial di CMake, ad eccezione del molto costoso e difficile da ottenere official one?Esercitazione su CMake

Particolarmente interessante nell'utilizzo di CMake per i progetti Fortran, ma sarà grato per qualsiasi buon tutorial.

Aggiornamento .

Quello che ho già trovato è CMake articles in Kitware Public Wiki. Fortran example è assolutamente inutile. = (. Inoltre, mentre in attesa di risposte sto giocando con SCons sembra piacevole =.)

+0

Cosa intendi come "assolutamente inutile"? C'è un numero di buone esercitazioni collegate in Tutorial -> Presentazioni di base. Ne ho aggiunti alcuni io stesso. Cosa manca in loro che li rende inutili? Stai cercando un particolare dettaglio o tecnica? – mloskot

+1

Come ho detto, sono "particolarmente interessante nell'usare CMake per i progetti Fortran". Mi piacerebbe vedere una sorta di guida passo-passo. – Wildcat

+0

Aand pensavo che Bill fosse un discreto veterano! Che diamine: D – mlvljr

risposta

157

In primo luogo, vi consiglio un'ottima introduzione conferenza a CMake e strumenti correlati da Bill Hoffman disponibile su YouTube:

CMake/CPack/CTest/CDash Open Source Tools to Build Test and Deploy C++ Software

Quindi, una rapida panoramica e sentire CMake scripting, semplice e veloce e anche un po 'di gusto di CMake syntax, quindi ti aiuterà a leggere gli script di CMake.

Ora è possibile ottenere immediatamente le mani su Tutorial disponibile in CMake CVS. È senza parole, ma il codice del materiale didattico viene utilizzato nel libro CMake di masterizzazione. Certamente, è necessario fare riferimento allo manual per informazioni dettagliate su varie macro.

Dopo aver afferrato fondamenta di CMake, si può iniziare a scavare in tecniche più avanzate, così come leggere i file CMakeLists.txt esistenti per vedere come gli altri incidere script CMake.

Per esempi reali con completa walk-through, selezionare la recently announced più parti tutorial from Wigner GPU Lab a GitHub.

C'è anche, un po 'datato, di Bruno AbiNader due parti tutorial con buon commento:

I can also recommend Empirical approach to CMAKE

ho trovato anche KDE documentations for CMake scripting molto utile . Include un'ottima introduzione Development/Tutorials/CMake. Tuttavia, alcune funzionalità specifiche di KDE e macro personalizzate potrebbero essere un po 'fastidiose.

Penso che sia un materiale abbastanza buono per iniziare. Inoltre, non dimenticare le mailing list di CMake con una community molto utile.

Tutorial from "Mastering CMake" now online! - Bill Hoffman ha appena annunciato sulla mailing list. Qui è CMake Tutorial Now on the Web

Learning CMake (PDF) - Tutorial scritto da Pau Garcia i Quiles

CMake: Getting Started - completo tutorial dal Wiki del progetto MASH.

Ecco il video dal webinar registrato nel marzo 2012 - Introduction to CMake, altamente consigliato.

The Ultimate Guide to Modern CMake di Rico Huijbers - dedicato ai progetti C/C++, spiega anche gli obiettivi importati/esportati ei file di configurazione del progetto.

Ecco il repository Git con CMake tutorial presentation preparato da Eric Noulard disponibile in vari formati di stampa.

Ecco un PDF di 50 pagine con Learning CMake di Pau Garcia i Quiles.

sviluppatori Fortran, ma non solo, possono trovare questi due articoli utili:

Infine, ci Awesome CMake progetto che mantiene l'elenco a cura di impressionante CMake script, moduli, esempi e altri.

prega, segnalare eventuali collegamenti interrotti nei commenti qui sotto.

+2

Grazie mille per i collegamenti. – Wildcat

+3

C'è stato qualcosa di nuovo pubblicato su questo fronte? Sto cercando di cogliere questa roba, ma devo dire che KitWare dovrebbe davvero impegnarsi di più nella documentazione. L'acquisto di un libro per $ 59 può andare bene se sei un'azienda, ma non lo sono. Il "tutorial gratuito di CMake" crea solo più domande di quante ne risponda. – Skurmedel

+0

@Skurmedel Non sono a conoscenza di aggiornamenti. Puoi provare a chiedere su [email protected] ml – mloskot

12

Fortran dovrebbe essere più o meno lo stesso di C/C++. Basta aggiungere i file .f o .f90 invece dei file .c o .cxx, inoltre includere Fortran nella chiamata di progetto. CMake 2.8 ha il miglior supporto per le versioni di Fortran di CMake. CMake ha un ottimo supporto per Fortran. Può analizzare il codice sorgente e ordinare la build in base alla generazione del file .mod richiesta durante la build Fortran. Se avete domande specifiche su Fortran o un compilatore che non funziona, la mailing list di CMake sarebbe il posto dove andare.

Qualcosa di simile a questo:

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) 

da test Fortran in CMake: http://public.kitware.com/cgi-bin/viewcvs.cgi/Tests/Fortran/?root=CMake (non più disponibile)

CMake ha anche un modulo per determinare C/Fortran linkage:

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

5

Solo per farvi sapere che ho spostato il mio blog su un nuovo host (http://brunoabinader.com) e anche i tutorial di CMake sono stati spostati (post link). Intendo continuare la serie di tutorial sulla gestione di argomenti come internazionalizzazione (i18n), documentazione (doxygen, qdoc), integrazione di unit test, modalità di debug/release, supporto multipiattaforma e altri.

+3

Quel sito sembra morto. – kynan

+1

corretto! Grazie per l'avviso :) – brunoabinader

+2

Questi link sono di nuovo morti. – bames53

2

Per CMake per sé, quei riferimenti elencati nella risposta di cui sopra abbastanza copre ogni cosa che si può trovare.

Dalla mia esperienza, la pratica è la cosa migliore che puoi fare e la sua documentazione ufficiale nel loro sito web è sempre la migliore risorsa di riferimento.

La parte difficile dell'apprendimento di CMake è quando si desidera eseguire alcune operazioni speciali che CMake non fornisce direttamente e bisogna trovare un modo per farlo funzionare.

Alcuni progetti opensource sono già stati forniti con CMake, come Curl e Boost, se si desidera vedere come CMake viene effettivamente utilizzato in un progetto reale molto complicato. È sempre un buon punto di partenza.

A proposito, il problema di SCon è la sua dipendenza da Python e per noi, abbiamo bisogno di costruire su AIX/Solaris/Linux (CentOS & RedHat)/HP-UX. Quindi probabilmente non vuoi Python, specialmente le versioni più basse non funzionano correttamente con CMake.

5

ne dite di questo:

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

Avere un .per-file in questo modo:

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

E 'molto semplice, ma dovrebbe aiutare come introduzione

+1

+1 per 'enable_language (Fortran)', che era l'unica cosa di cui avevo bisogno per farlo funzionare. – Stefan

+0

I comandi project() e enable_language() possono essere combinati come project (ciao Fortran), sebbene le due opzioni non siano identiche (vedi man cmakecommands). – AstroFloyd

0

Ecco come sono riuscito qualche tempo fa:

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) 

Riferimento: CMake mailing list