Nel mio sviluppo (principalmente C ++), ho aderito a lungo all'utilizzo di build out-of-source. Cioè, la mia fonte di solito si trova in una directory /project/src
e le build risiedono in una directory /project/build/bin/release
, /project/build/bin/debug
. L'ho fatto perché mantiene le mie directory di origine pulite dai file intermedi, ho una posizione per tutti i miei binari, l'imballaggio è più semplice, la pulizia è più semplice e il controllo della versione è più semplice. (Mi sono perso qualcosa?)
Ora sto ereditando un (grande) progetto che usa build in-source. Qual è la motivazione per questo tipo di struttura e quali sono i suoi vantaggi? (Sono molto interessato ai motivi di livello tecnico rispetto ai tipi di preferenze personali.)
Speravo che il "Software di progettazione C ++ su larga scala" di Lakos avrebbe pesato su di esso, ma mi è sfuggito se lo avesse fatto.