Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Crypton
Založen: 14. 05. 2009 Příspěvky: 306 Bydliště: The Void
|
Zaslal: 6. únor 2012, 21:12:46 Předmět: Custom build step/tool ve VS2010? |
|
|
Zdravím ve spolek,
potřeboval bych před zahájením kompilace spustit svojí externí aplikaci (přes příkazový řádek) pro každý zdrojový soubor (tj. *.h;*.cpp) v projektu. [1]
Tato aplikace naparsuje tyto soubory a vygeneruje další zdrojové soubory, které se ale budou kompilovat namísto těch naparsovaných. [2]
Je to ve VS2010 možné? Všimul jsem si že tam něco takového je, ale moc jsem to nezkoumal, přišlo mi to trošku složité. Potřeboval bych alespoň bod 1, protože bod bych mohl vyřešit i za pomocí direkrivy #include.
Děkuju za jakoukoliv odpověď. _________________
|
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 6. únor 2012, 21:29:09 Předmět: |
|
|
hmm bude to chtit trochu vic popsat asi - ale urcite
1) *.cpp jdou udelat jako 'exclude from build' - tzn. se ti nutne nebuidnou ..
2) ta *.cpp co maji byt vygenerovana bych i tak dal do projektu - fake prazdne soubory
potom pre-build step naparsuje co je treba
a build zbuilduje to nagenerovane
takto by to slo? |
|
Návrat nahoru |
|
|
Crypton
Založen: 14. 05. 2009 Příspěvky: 306 Bydliště: The Void
|
Zaslal: 8. únor 2012, 16:15:03 Předmět: |
|
|
Díky. Akorád že nevím jak ten "custom build step" přidat do toho projektu.
Vím že když otevřu "Property Pages" u svého projektu, tak tam je položka "Build Events" a "Custom Build Step". Zkoušel jsem obojí, ale vůbec se mi nepodařilo tu mojí aplikaci spustit pro každý .h a .cpp soubor v projektu. Nikde tam ani nevidím kolonku pro zadání přípony souboru.
Nikde jsem taky nenašel nějaký kompletní příklad, a tak jediné co jsem našel bylo jak přidat "Build Target", a to přes editaci .vcxproj v textovém editoru: http://stackoverflow.com/questions/3269575/how-do-i-add-a-custom-build-target-to-a-visual-c-2010-project
Taky bych potřeboval aby to spouštělo ten parser jen v případě kdy došlo ke změně obsahu toho vstupního souboru, a pokud jsem to pochopil správně, tak se ta kontrola automaticky provádí právě ve build targetu, a né custom build stepu. _________________
|
|
Návrat nahoru |
|
|
tommy
Založen: 04. 06. 2008 Příspěvky: 31 Bydliště: Praha
|
Zaslal: 8. únor 2012, 21:08:17 Předmět: |
|
|
Projdi si dostupne options pro msbuild, treba tam neco podobneho bude.
Jinak co ti brani si v Post-Build zavolat nejaky svuj bat nebo exe ktery to provede? |
|
Návrat nahoru |
|
|
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 9. únor 2012, 00:22:44 Předmět: |
|
|
O změně kompilátoru neuvažuješ? Co takhle mingw + makefile? Makefile je přesně na tohle dělanej. Někde jsem četl, že i VS umí kompilovat pomocí makefile, ale nevim teda jak. |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 9. únor 2012, 09:03:06 Předmět: |
|
|
@Crypton - custom-build-step se pousti jednou - ne pro kazdej soubor extra -to bys pak musel asi jit na kazdej soubor v projektu a nejak u neho to nastavit ... |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 9. únor 2012, 09:32:19 Předmět: |
|
|
Ano, pusta sa to len raz pre celu kompilaciu. V tom pripade si napis skript (bat, python, whatever), ktory bude tym custom step spusteny a skript samotny zavola tu ziadanu aplikaciu (custom preprocessor) na kazdy potrebny .h a .cpp... Komplikovane, zbytocne?
Osobne by som sa pozrel, ako to robi Nokia Qt, pretoze tam dochadza k preparsovaniu vsetkych vstupnych suborov, kde niektora z tried obsahuje direktivu Q_OBJECT, vygeneruju sa uplne nove subory a az tie sa poslu normalnemu kompilatoru (to je presne to, co chces ty). A je to aj zaintegrovane do VS, je to open-source. Takze tam by som hladal uplne konkretnu inspiraciu, v Qt. _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
kerekes
Založen: 29. 07. 2007 Příspěvky: 57
|
Zaslal: 9. únor 2012, 09:35:07 Předmět: |
|
|
V Qt existuje qmake.exe, ktory robi presne to co popisuje pcmaster (sprava sa ak onejaky pre prepocesor). Zrejme sa len spusti qmake.exe s nejakym -a parametrom co mu povie aby preliezol vsetky zdrojaky. |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 9. únor 2012, 10:30:55 Předmět: |
|
|
no takze jsem kvuli vam pustil to C++ (coz delam ostatne 100x denne v praci)
u kazdeho souboru (tedy ne per projekt) lze dat prave tlacitko -> properties -> a primo v 'General' nabidce vidime vpravo v gridu 2 polozky
1) Excluded from build
2) Item Type
-- u Item Type je moznost zvolit i Custom Build Tool
tak si pohledej jak to udelat a nastavit |
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 9. únor 2012, 20:45:24 Předmět: |
|
|
Jj, přesně jak píše rezna. Čili do projektu dát původní cpp a každému z nich nastavit custom build step a ten musí vygenerovat obj soubor z toho původního cpp. A jelikož se to asi bude opakovat u více souborů, je tam myslm někde i možnost nadefinovat vlastní build tool a pak ho jen vybírat z nabídky. (U assembleru jsme nicméně vždycky používali klasický obyčejný custom build step.) |
|
Návrat nahoru |
|
|
|