Nel mio sviluppo (principalmente C ++), ho aderito a lungo all'utilizzo di build out-of-source. Vale a dire, la mia fonte di solito si trova in una /project/src
directory e la costruisce vivere in una /project/build/bin/release
, /project/build/bin/debug
le directory. L'ho fatto perché mantiene le mie directory di origine pulite dai file intermedi, ho una posizione per tutti i miei binari, il packaging è più facile, la pulizia è più facile e il controllo della versione è più facile. (Mi sono perso qualcosa?)
Ora sto ereditando un (grande) progetto che utilizza build in-source. Qual è la motivazione per questo tipo di struttura e quali sono i suoi vantaggi? (Mi preoccupo maggiormente di motivi a livello di ingegneria rispetto a motivi di preferenze personali.)
Speravo che "La progettazione di software C ++ su larga scala" di Lakos avrebbe influito su di esso, ma in caso contrario mi mancava.
/project/src/bin/release
, o davvero tutti i file intermedi e di output in /project/src
? Quest'ultimo può davvero essere un disastro se ci sono più di una dozzina di file sorgente, il primo è ok.
main.cpp
essendo inizialmente al livello più alto del tuo progetto, crea comunque una directory di creazione di cmake separata dalla tua fonte a quel livello superiore. Credo che MSVS sia simile a Clion anche a questo proposito.