Build In-Source vs. Build Out-Of-Source

6

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.

    
posta DiB 06.02.2018 - 19:19
fonte

1 risposta

5

Dopo aver chiesto la community qui e aver continuato la mia ricerca online, non sono stato in grado di trovare una giustificazione ingegneristica significativa per l'utilizzo di build in-source. (Ci sono molti esempi di ragioni per evitarli.)

L'unica ragione obiettiva che ho trovato (come accennato nel commento di @BartvanIngenSchenau) è che a volte le build in-source sono predefinite da un sistema di build. A causa di questo default, non richiedono overhead nei tempi di setup, il che può essere perfettamente accettabile per un progetto molto piccolo (o scratch).

    
risposta data 09.02.2018 - 15:17
fonte

Leggi altre domande sui tag