Qualsiasi vantaggio nell'utilizzo di più sistemi di compilazione? [chiuso]

2

Quando si lavora su un progetto di grandi dimensioni che ha più sistemi di compilazione, (C, C ++) in questo caso, possono utilizzare più sistemi di compilazione, per piattaforme diverse o per ragioni storiche.

Con la popolarità dei sistemi di meta-build, c'è l'opportunità di utilizzare un singolo sistema di build in grado di generare file per piattaforme diverse.

Gli svantaggi dell'utilizzo di più sistemi di compilazione sembrano piuttosto ovvi ...

  • spese generali di manutenzione.
  • maggiore barriera di accesso per gli sviluppatori,
    (che richiede esperienza in più sistemi di compilazione)
  • altri file per navigare nel repository di origine.

Ignorando lo sforzo necessario per eseguire la migrazione iniziale, ci sono dei vantaggi nel mantenere in uso più sistemi di compilazione? (quando esiste l'opportunità di usarne solo uno?)

Ha detto in modo diverso, se qualcuno entra in un progetto e suggerisce di utilizzare un singolo sistema di compilazione multipiattaforma, ci sono argomenti ragionevoli contro questo?

Dato che è stato richiesto di essere più specifico, i progetti che ho in mente sono grandi basi di codice C / C ++, usando un mix di automake, file di progetto MSVC, SCons & in un caso, CMake (che è un esempio di un sistema di meta-build).

    
posta ideasman42 04.04.2015 - 11:43
fonte

2 risposte

2

La tua domanda è ancora troppo ampia.

Si noti che Cmake è esplicitamente un meta-costruttore indipendente multipiattaforma e compilatore.

Stai citando i prodotti Windows, e non conosco e non ho mai usato Windows, e ho notato che Unix e POSIX hanno un edificio un po 'standardizzato: invocazione di cc , standardizzazione di una specifica di% dimake POSIX .

Si noti inoltre che i sistemi di costruzione (anche quelli legacy) stanno ancora facendo progressi significativi. In particolare GNU make ha fatto un processo molto significativo nella sua versione 4.x, con funzionalità importanti come Guile integration che consentirebbe ai progetti di evitare i metabrailder. Tuttavia, la maggior parte dei software non utilizza le funzionalità recenti di GNU make (che ritengo possa essere utilizzato anche per evitare autoconf etc ...)

Sento che il principale vantaggio di Cmake è la capacità multipiattaforma.

Si noti inoltre che altri sistemi di build (ad es. omake ) potrebbero probabilmente essere usati per evitare il metabuilder.

    
risposta data 04.04.2015 - 12:09
fonte
2

Quando cambi o riorganizzi gli strumenti dalla tua infrastruttura di sviluppo, i compromessi sono quasi sempre gli stessi, se sono il compilatore, l'IDE, il VCS o il sistema di compilazione:

  • la modifica richiederà un certo sforzo, senza alcun valore immediato per il cliente

  • il team (o parti di esso) in genere conosce gli strumenti esistenti, ma non i nuovi strumenti. Quindi le persone devono ottenere una formazione, che richiede tempo e denaro, senza alcun valore immediato per il cliente.

  • quando si tenta di introdurre una soluzione "taglia unica", si ha il rischio di apprendere che non tutte le funzionalità disponibili nel vecchio strumento saranno disponibili con la stessa qualità nella nuova.

Quindi, quando cambi gli strumenti di costruzione, deve esserci un valore chiaro in esso, almeno per il team esistente , non solo per i nuovi sviluppatori, e il valore deve essere sufficiente per convincere anche il tuo capo che supera gli svantaggi di cui sopra.

Nella tua situazione attuale ti suggerisco di identificare se ci sono parti dell'attuale processo di compilazione in cui la squadra non è soddisfatta. Questa è la parte in cui hai la possibilità di rimuovere un vecchio strumento di creazione e sostituirlo con uno più nuovo e più standardizzato.

    
risposta data 04.04.2015 - 13:08
fonte

Leggi altre domande sui tag