2010-01-29 10 views
5

Non sono un grande fan di strumenti come Ant, ma sono sicuramente utili. In un progetto C++ corrente non ho affatto un processo di compilazione automatizzato - semplicemente ho creato la mia directory di lavoro usando Visual Studio, compresso la cartella/bin e spedito per l'installazione. Il progetto è abbastanza piccolo, questo funziona bene, ma è totalmente dipendente dalla conoscenza del progetto.Automazione semplice del processo di generazione su Windows

Vorrei un sistema che può fare passi come:

  • Aggiorna più dirs di lavoro SVN per una versione specifica (o di default per testa)
  • run Doxygen (o un attrezzo simile) per ottenere API docs fino ad oggi
  • impegnano la documentazione API per qualche SVN repo
  • costruire diversi progetti nel giusto ordine
  • copia alcune cose su, cancellare i file indesiderati
  • pacchetto di file/cartelle in un file zip/cartella denominata in base a una versione specificata dall'utente o trovata da un file/SVN

Libero è importante. Facile da usare è un altro. Windows è essenziale e non include le opzioni Cygwin.

Mi è venuto in mente che probabilmente si potrebbe fare ciò usando un file .bat, è un'opzione valida su quello che è ancora un progetto piuttosto piccolo (1-4 sviluppatori)?

+0

Nulla di specifico C++ qui - tag rimosso e titolo modificato. –

+0

Hmm, immagino. Mi hai fatto pensare che la lingua di destinazione di Ant è indipendente? –

+0

Lo è. Ha anche un certo tipo di estensione per la creazione di progetti C++. –

risposta

3

cmake è lo strumento di scelta per qualsiasi sistema operativo in questi giorni. Nient'altro si avvicina. Devi digitare una descrizione di alto livello del tuo codice e cmake genererà VS soluzioni/progetti e makefile per tutti gli unices o cygwin.

NSIS: tonnellate di progetti open source/closed source utilizzano NSIS per creare programmi di installazione per Windows - non è male, e il builder può essere facilmente eseguito dalla riga di comando - in modo da poterlo integrare con cmake.

+0

Ho già una soluzione VS/progetti, accuratamente configurati. Cmake giocherà bene con quello? –

+0

Beh, cmake vorrebbe generare la propria soluzione e progetti - è possibile mettere a punto un sacco di cose a un livello astratto. Probabilmente dovrai portare la configurazione su cmake. –

+0

Oh. Sembra un po 'fastidioso. mi piacerebbe uno strumento che funzioni con i miei progetti esistenti, non uno che mi costringa a ricominciare. Comunque, vale la pena dare un'occhiata. –

2

Se si utilizza Visual Studio (solo) in ogni caso, è possibile utilizzare il processo di creazione integrato in modalità batch (digitare devenv /? nel proprio cmd). Questo sarebbe sufficiente per costruire il tuo progetto C++ e risolverà tutte le dipendenze del C++, che sono la parte più difficile.

Altre cose che è possibile eseguire facilmente dallo script batch.

Inoltre si prega di leggere questo 2 articoli:

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2

+0

Interessato al pensiero di altre persone su questo tipo di soluzione ... è una delle opzioni che avevo in mente dopo aver visto alcune grandi applicazioni commerciali stabili basare la loro costruzione/implementazione attorno a semplici file .BAT. –

+0

Direi che questa soluzione non si adatta molto bene. Ma per * casi d'uso * molto semplici dovrebbe essere sufficiente. –

+0

Direi che si adatta bene se hai tutto nei progetti VS.Net.Lo usiamo per un progetto ~ 1MLOC. Se avessi a che fare con progetti ancora più grandi, ci sono anche opzioni aggiuntive come Incredibuild per le build distribuite. –

1

Se si dispone di una casella di riserva per risparmiare suggerirei Nant e [CruiseControl.net]. Non devi necessariamente usarlo per l'integrazione continua puoi impostare le tue build da eseguire [solo quando forzate]. Entrambi sono open source, hanno il supporto nativo per SVN e sono abbastanza facili da usare. Ho usato Nant & CruiseControl.Net per ogni cosa che hai elencato tranne il compito doxygen. Anche senza la scatola di riserva suggerirei di usare Nant per automatizzare la tua uscita da quella che sembra una lunga serie di compiti manuali.

1

Visual Studio viene ancora spedito con una copia di Nmake, che è un classico strumento di regole di generazione per dipendenza. Posso creare i tuoi progetti di Visual Studio usando devenv e anche molte altre cose. Tutto ciò che puoi fare con una riga di comando, puoi farlo con nmake. E ha un buon linguaggio macro.

4

Hudson è molto semplice da configurare, installare ed eseguire e non ha problemi di esecuzione in un ambiente Windows. Non devi usarlo per l'integrazione continua, sarà felice di costruire solo quando lo dici.

Hudson ha il supporto nativo per l'esecuzione di script batch di Windows e lavorerà felicemente NANT o cmake tramite plugin. Se non c'è già un plugin per qualcosa che vuoi fare, puoi facilmente realizzarlo, se normalmente potrebbe essere fatto dalla riga di comando.

Si prega di notare: il progetto Hudson è stato rinominato Jenkins

+0

+1 per Hudson. Dato che hai i file di progetto VS.Net puoi costruirli dalla riga di comando con 'devenv' o' msbuild', quindi sarà molto veloce configurare un sistema di build automatico chiamando uno script batch con Hudson –

Problemi correlati