CMake

di Spinus
Ho iniziato da poco ad usare CMake e mi sono subito affezionato🙂
Cos’è CMake?
E’ un tool che permette di generare i Makefiles per un progetto C/C++.
Ma allora non è più comodo usare make?
Sì, ma CMake è cross-platform, quindi permette di generare oltre ai Makefile Unix, anche Makefile per MinGW e, addirittura, può creare i .vcproject per Visual Studio!
Quindi se il progetto che si sta scrivendo utilizza librerie portabili, basta scrivere le regole di generazione poi digitare
cmake .
  • sotto Unix verrà generato un Makefile
  • sotto Windows verrà generato un progetto per Visual Studio
    • oppure un Makefile per MinGW se si utilizza il comando
    • cmake -G”MinGW Makefiles” .
Come si scrivono le regole?
Ecco un semplice esempio: il progetto chiamato esempio è costituito dal file codice.cpp

#nome che identifica il progetto

project(esempio)


#directory dove il compilatore deve cercare i sorgenti

include_directories (${esempio_SOURCE_DIR})

#flag del compilatore C++

SET(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -Wall -DDEBUG”)

#regola che specifica il nome dell’eseguibile e che file utilizzare per compilarlo

add_executable (esempio codice.cpp)

Per esempi più complessi e interessanti rimando alla documentazione ufficiale di CMake

Articolo aggiornato – Data pubblicazione: Feb 21, 2008 @ 23:04

Ho scoperto l’esistenza di CPack, che permette di generare pacchetti per distribuire i binari in molti formati tar/DEB/RPM utilizzando gli stessi concetti di CMake; non ho ancora avuto tempo di provarlo, ma credo possa rivelarsi molto utile!
http://www.cmake.org/Wiki/CMake:CPackPackageGenerators

5 commenti to “CMake”

  1. Ciao ho trovato interessante questo codice, ma mi sarebbe stato più utile se avesse spegato come installare il file del programma.

  2. Uhm sinceramente non mi sono mai posto il problema di come installare l’eseguibile generato….per linux credo si possa generare una linea per “make install”, ma per windows non saprei! Se trovo qualche guida aggiorno il post!

  3. Oggi sono riuscito a trovare un modo per installare sia il file generato che gli eventuali files inclusi nel mio progetto… Però a quanto pare il programma installato (in /usr/local/bin) non può essere eseguito perché mancano i permessi o qualcosa del genere… Infatti ho dovuto intervenire con “chmod a+x” per rendere il programma eseguibile. Windows sinceramente non mi interessa. Cmake mi serve solamente su linux.

    • Mi ero dimenticato di approvare il commento .P Ho appena scoperto l’esistenza di CPack che permette di creare dei pacchetti per distribuire i binari del programma, si possono fare anche i deb o rpm, così non dovresti avere problemi nell’installare i file e renderli eseguibili! Purtroppo non ho molto tempo libero e non riesco a fare delle prove, comunque ecco il link http://www.cmake.org/Wiki/CMake:CPackPackageGenerators

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...