Generazione di CMakeLists.txt [chiusa]

3

Ho ricevuto un sacco di C++ di sorgenti file e intestazioni. Possono utilizzare librerie esterne come Boost, ad es. Sono interessato al processo di creazione di binari per Windows e * nix.

  • Makefile (* nix) e .vcproj (Windows) chiamano i compilatori con alcune specifiche come l'ordine di compilazione, le opzioni di compilazione e altro.

  • CMakeLists.txt può essere utilizzato da CMake per creare makefile o .vcproj e utilizzare comandi molto utili come la ricerca ricorsiva di file, il collegamento automatico con librerie note, programmi di installazione, variabili che possono essere utilizzate nei file di origine. ..

Esistono strumenti esistenti che generano un CMakeLists.txt dalle opzioni specificate? Le opzioni possono essere simili: scansiona questa cartella e creane una libreria, poi scansiona quest'altra cartella e crea un eseguibile e collega automaticamente sia Boost che un programma di installazione intuitivo con INSTALL.txt e README.txt generati. Qualcosa di molto potente come quello.

    
posta vanna 06.09.2012 - 15:33
fonte

1 risposta

3

Recentemente ho iniziato a imparare CMake da solo e, come nel caso di Delnan, nel suo commento non ha davvero senso avvolgere ulteriormente la creazione di quegli script in una sorta di strumento. I problemi che stai cercando di risolvere sono praticamente lo scopo di CMake e la sua ragion d'essere.

In effetti, ciò che dici di voler fare somiglia molto a quello che farebbe in realtà il CMakeLists.txt per un progetto (senza la parte di installazione, che è leggermente più coinvolta a seconda delle tue esigenze).

es. scansionare una cartella come sorgente e trasformarla in una libreria di lib è al centro di alcuni comandi:

cmake_minimum_required(VERSION 2.8)
project(YourProject)

# This is a built-in utility to grab all the source files from a specific
# location into a list
AUX_SOURCE_DIRECTORY(. LOG_SOURCES)

# This is all you need to do to tell CMake that a specific list of files
# should be built as a library (shared in this case)
add_library(Logging SHARED ${LOG_SOURCES})

Quanto sopra non collega ancora automaticamente nessun'altra libreria, né gestisce le impostazioni del compilatore, ma tutto ciò è possibile e relativamente semplice una volta che inizi a girare la testa intorno alla modalità CMake.

    
risposta data 06.09.2012 - 17:00
fonte

Leggi altre domande sui tag