È possibile impostare la catena di build in modo tale che eventuali modifiche nei commenti (o spazi) vengano ignorate? Ad esempio ogni volta che viene modificato un commento in un file di intestazione, ogni file sorgente che lo include viene ricompilato, anche quando ciò non è necessario.C++ build setup per ignorare le modifiche nei commenti
Quando il preprocessore è terminato con la rimozione dei commenti dal file modificato, la catena di build potrebbe innanzitutto verificare se l'output è effettivamente cambiato. In caso contrario, dovrebbe comportarsi come se il file stesso non fosse cambiato.
Utilizzo Visual Studio 2010 btw.
Modifica: @MikeSeymour, VS's cl.exe ha un interruttore/Gm per le ricostruzioni minime. Non è ben documentato, ma penso che sia ciò che sto chiedendo. Ma non è compatibile con l'opzione/MP per l'utilizzo di più core. Sul mio dual core (con hyperthreading),/Gm dovrebbe saltare la compilazione di ~ 3 su 4 unità in media. Mentre trovo dubbio che questo sia il caso, non sono nemmeno sicuro di come valutare se/Gm ne vale la pena o meno.
Interessante. Fondamentalmente vorrai un sistema di build esteso che elabori un target, quindi confronta il risultato con il file esistente e * non * sovrascrive se sono uguali. Quindi lo combinerai con la separazione della fase di preelaborazione in un bersaglio separato, e avresti finito. Sarebbe una bella caratteristica! –
Ho una vaga idea che Visual Studio lo faccia comunque - penso di ricordarlo mentre produce messaggi come "ignorare i cambiamenti irrelavent". Potrei sbagliarmi però.Per altre piattaforme di sviluppo, puoi fare esattamente quello che vuoi con [ccache] (http://ccache.samba.org/). –
@MikeSeymour: ccache _does_ impedisce la ricompilazione per le variazioni di spazi bianchi al di fuori dei commenti (e giustamente, IMO) – sehe