2011-12-14 10 views
7

è possibile impostare (idealmente dalla GUI) lo Build Configuration per aggiungere automaticamente i suffissi ai file di output in base alla piattaforma di destinazione?È possibile configurare la Configurazione build per aggiungere automaticamente i suffissi per la piattaforma di destinazione?

voglio dire, avrò per il progetto libreria di un'istanza denominata Project e vorrei ottenere

Project.dll - when I build the project for 32-bit platform 
Project64.dll - when I build the project for 64-bit platform 

Grazie

+0

Per quanto ne so l'unica cosa che si può cambiare è l'estensione con '{$ E}' –

+0

Purtroppo {$ E} pone il valore dietro il punto di estensione, in modo da utilizzare '{$ E 64.dll } 'mi costruirmi qualcosa come' Project.64.dll 'cosa non va bene :( –

+0

Sì, mi rendo conto che non è quello che vuoi.Flatemi per non essere chiaro su questo punto.Per quanto so, questo è l'unico La mia soluzione è usare gli script post build per rinominare il file –

risposta

12

Stranamente stavo cercando di fare la stessa cosa ieri per l'eseguibile file della mia app. Ho raggiunto la conclusione che non è possibile cambiare il nome del file di output. L'unico modo in cui puoi influenzare il nome del file di output è con la direttiva {$E} ma che controlla solo l'estensione dell'output che non è ciò che desideri.

Aggiornamento

Grazie a @TOndrej per sottolineare la direttiva $LIBSUFFIX. Questo non sembra essere modificabile tramite le opzioni del progetto IDE per le librerie, sebbene ci sia un tale supporto per i pacchetti. Tuttavia, funziona davvero quando è incluso nel codice sorgente del pacchetto. Includilo nel file .dpr della tua libreria.

{$IFDEF WIN64} 
    {$LIBSUFFIX '64'} 
{$ENDIF} 

Ciò non ha alcun effetto per i progetti che producono gli eseguibili (cioè applicazioni VCL, servizi, ecc) e quindi credo che l'unica soluzione in questi casi è un'azione di post-generazione.

+0

Grazie a te e TOndrej per lo sforzo. –

+0

Qualche possibilità per i nomi eseguibili?Come Project32.exe e Project64.exe –

1

È anche possibile utilizzare un evento di build per rinominare l'eseguibile. Nel post evento costruire in opzioni del progetto, si potrebbe fare qualcosa di simile:

ren $(OUTPUTPATH) $(OUTPUTNAME)$(Platform).exe 

, che vi darà qualcosa di simile:

ExampleProgramWin64.exe 

o

ExampleProgramWin32.exe 

vuol dire che si non è possibile eseguirne il debug, dal momento che l'IDE non sa che è stato rinominato, quindi forse fare una copia è più appropriato.

copy $(OUTPUTPATH) $(OUTPUTDIR)\$(OUTPUTNAME)$(Platform).exe