2010-08-07 10 views
6

nel mio progetto, tutto il codice sorgente risiede in una cartella denominata "src". C'è un file CMakeLists.txt nella mia root dei progetti (sopra "src"), ma dichiara semplicemente il progetto e include la sottodirectory "src". Il file CMakeLists.txt sotto src fa tutto il lavoro, incluso "add_binary".Dove mettere il binario in CMake?

(è che un comune modo di farlo, o devo mettere tutta l'intelligenza nel file CMakeLists.txt al livello principale?)

Se io costruisco il progetto ora, il mio binario viene inserito nel cartella src, ma questo non ha molto senso, preferirei averlo nella cartella radice o in una cartella "bin" dedicata.

Come si fa?

risposta

6

Se si vuole mettere tutti i file eseguibili in una sottodirectory chiamata "bin", quindi è possibile utilizzare la seguente riga nel file top CMakeLists.txt:

SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") 

Basta togliere /bin e saranno eseguibili creato nella directory principale. Esiste una variabile simile per le librerie: CMAKE_LIBRARY_OUTPUT_DIRECTORY.

PS. L'aggiunta della logica per directory è soddisfacente. Sembra essere il modo comune di fare le cose e mantiene le cose ben organizzate.