2009-06-27 8 views
20

Abbiamo un progetto C/C++ piuttosto grande che utilizza scons per l'edificio. Mi piacerebbe provare a costruire questo attraverso Eclipse-CDT. Qualcuno ha esperienza con questo e può dirmi i passi per creare scons come costruttore. (NON usando il plugin SConsBuilder, non funzionerà con Eclipse-CDT di Fedora-11).Come creare progetti SCons con Eclipse CDT?

risposta

11

Ho provato Waf in Eclipse CDT prima d'ora, SCons sarebbe molto simile. La soluzione era creare un progetto Makefile vuoto, quindi cambiare semplicemente "make" in "scons" nelle opzioni. Su Windows che probabilmente avrebbe bisogno del file scons.bat nel tuo percorso. Questo non è molto meglio della creazione di un fittizio Makefile che contiene un modello di tipo all:\n\tscons, ma è il minimo lavoro.

Il SConsBuilder plugin non è una buona idea. Ha un sacco di codice Python codificato in modo che sputa a un SConstruct. Non è stato aggiornato da tempo e un sacco di codice è probabilmente deprecato in SCon ormai. Penso che un approccio migliore sia quello di fare ciò che SCons fa per Visual Studio, o cosa fa CMake per Eclipse CDT. Ciò significa generare un file .cproject in tempo reale sulla base della configurazione di build.

Ho scritto un Eclipse project generator for Waf in un punto, che porta i nodi di generazione che raccolgono i file sorgente e sputa un file .project e .cproject. Simile a come lo fa CMake, ma il comportamento predefinito di Waf di creare una directory variante significa che non devi affrontare problemi di build non-source. Da allora è stato aggiunto come extra in waf itself. Utilizza solo una parte dell'API Waf, quindi sarebbe possibile convertirlo in SCons con una piccola quantità di lavoro. In altre parole, non c'è molto di là fuori. Il formato .cproject non è realmente documentato da nessuna parte ed è davvero brutto rispetto alla versione Java.

Non sono andato molto d'accordo con il CDT - è molto lontano dagli strumenti di sviluppo Java - e uso ancora Vim con :make, quindi alla fine è stato un po 'accademico.

14

È possibile utilizzare un Makefile che semplicemente delegati i bersagli importanti da scons

.PHONY: all clean install 
default: all 
all:  
    scons 
clean: 
    scons -c 
install: 
    scons install 

allora è possibile usare "Standard fare C Progetto" out of the box.

16

Uno dei nostri studenti ha implementato una nuova integrazione di SCons per Eclipse CDT che funziona bidirezionale, vale a dire, può importare file SCons e popolare progetti di Eclipse CDT con le impostazioni corrispondenti e può generare file SCons dalle impostazioni del progetto Eclipse. Inoltre, fornisce una modalità SCons interattiva che accelera significativamente la creazione incrementale di progetti SCons di dimensioni maggiori. Verrà rilasciato presto al pubblico gratuitamente, vedere http://sconsolidator.com

+1

WOW questo sembra buono. Complimenti ai tuoi studenti. – supertux

+0

Ho votato perché ho usato sconsolidator e funziona. L'unica avvertenza è che è closed source. Non vedo che si stia diffondendo a meno che non sia open source. –

+0

Ho provato lo sconsolidator e, purtroppo, non funziona sul nostro progetto. Afferma che c'è stato un problema nell'importare le impostazioni e che la console avrebbe avuto maggiori informazioni su cosa è andato storto (e il display della console è vuoto). Oh bene. –

4

Basta modificare le impostazioni del builder, non è necessario alcun plug-in. Scegli un builder esterno e imposta scons invece di make e imposta workdir su dir dove viene posizionato SConstruct.

Ora è possibile utilizzare la vista obiettivi per creare scons costruire comandi ed eseguirlo come fare comandi. I parser di errore con scons funzionano bene per impostazione predefinita, non è richiesta alcuna configurazione aggiuntiva.

0

Essere MOLTO MOLTO attenti all'utilizzo di Sconsolidator con un progetto esistente !! Sovrascriverà ciecamente qualsiasi file esistente di SConstruct/SConscript presente nella directory principale del progetto quando si fa clic sul collegamento per aggiungere una natura SCons al progetto. (Sto cercando di segnalare questo come un bug per il progetto, ma essendo bloccato a ogni turno fino ad ora.)

+0

Dovresti essere in grado di segnalare il tuo problema qui: http: //sconsolidator.com/projects/sconsolidator/issues –