2012-03-12 13 views
7

So che ci sono DSSS, BUD/build, Orbit di Jacob Carlborg e ufficiale rdmd. E solo l'Orbita sembra essere attiva. Quindi, quale di questi è più utilizzabile per creare programmi D complessi e complessi con molte dipendenze? Non è necessaria alcuna confezione, solo un helper del processo di compilazione bello e chiaro.Il sistema edificio attuale per D

+1

I file batch appena creato prima corsa con la bandiera '' -c' e -obbin/'e quindi eseguire il linker sulla cartella bin –

+0

* .bat/*. sh file - sì, funziona, ma qualcosa di simile alla buona grafica di Visual Studio sarebbe meglio. Il semplice plugin per esso esiste già e lo sto usando.Sogni d'oro :) – Raxillan

+0

Sono abbastanza sicuro di poter creare qualcosa da solo che gestisca automaticamente tutte le dipendenze, consenta l'esecuzione di più metodi principali compilati nella cartella bin ed esegua apporti specifici su richiesta. ma non ho davvero il tempo per questo ora –

risposta

4

Sono troppo, un modello per l'uso makefile qui: MakefileForD

Perché utilizzarlo:

  • facile da usare
  • sostegno tutti compilatore
  • in grado di costruire sia lib condivisa e statica o eseguibile
  • // build
4

Non è un prodotto finito, ma ....

DMD ha già un -deps flag che dovrebbe rendere l'auto-generare make file ragionevolmente semplice.

1

Sicuramente sosterrò per rdmd - è un grande aiuto per avvolgere il tuo compilatore preferito. Utilizzo base dalla documentazione sono:

rdmd [rdmd args] [compiler args] <source file>[.d] [executable args] 

In tutti i miei progetti D, ho semplicemente usato script Bash (con Cygwin se su Windows), e ha funzionato meravigliosamente. Ecco alcuni dei miei frammenti preferiti:

Run

Tutta la ragion d'essere di rdmd è quello di semplificare il ciclo-edit-run compilazione di modificare-run, e fa che piuttosto semplice:

rdmd helloworld.d [args] 

rdmd non eseguirà alcun file con un timestamp meno recente dell'ultima compilazione, quindi la prossima volta che eseguirai lo stesso file sorgente senza modificarlo passerà semplicemente all'eseguibile precedentemente compilato.

Selezionare Compiler

Nonostante il nome, è possibile utilizzare la maggior parte dei compilatori con rdmd come GDC, LDC, e DMD in questo modo:

rdmd --compiler=dmd ... 

Corporatura:

Normalmente rdmd memorizza l'eseguibile e *.obj file dalla tua origine in una directory temporanea utilizzando tmpDir() nella sorgente rdmd - questo è fondamentalmente un po 'di magia per dare rdmd la sensazione di eseguire i file *.d come script. È possibile, tuttavia, specificare il file di output con il flag -of:

rdmd -of"helloworld.exe" helloworld.d