Il dottore dice CMake sul comando file GLOB:Perché il file cmake GLOB è malvagio?
Si consiglia di non utilizzare GLOB di raccogliere un elenco di file di origine dal proprio albero dei sorgenti. Se nessun file CMakeLists.txt cambia quando viene aggiunta o rimossa una sorgente, il sistema di generazione generato non può sapere quando chiedere a CMake di rigenerare.
Diversi thread di discussione nel web in secondo luogo che i file sorgente globbing è il male.
Tuttavia, per rendere il sistema di compilazione sanno che una fonte è stato aggiunto o rimosso, è sufficiente dire
touch CMakeLists.txt
Destra?
Quindi è meno sforzo di modificare CMakeLists.txt
per inserire o eliminare un nome di file di origine. Né è più difficile da ricordare. Quindi non vedo alcun motivo valido per sconsigliare file GLOB
.
Cosa c'è di sbagliato in questo argomento?
Vedere anche la discussione [qui] (http://stackoverflow.com/questions/30949452/cmake-ninja-attempting-to-compile-deleted-cpp-file/31183245). Come descritto nella mia risposta, sto usando un approccio misto: elencando tutti i file sorgente nei file 'CMakeLists.txt' (anche perché a volte seleziono manualmente i file di origine per diverse configurazioni di compilazione) e globing per i file di intestazione (per comodità averli nei progetti VS). E ho suggerito una soluzione alternativa per es. 'git' con qualcosa come' configure_file ($ {CMAKE_SOURCE_DIR} /. git/index $ {PROJECT_BINARY_DIR} /git_index.tmp) '. – Florian