Thanks
guys,
As far as I get it, Athena does not yet allow to invoke custom
customTargets.xml (customCustomTargets.xml?), so I opened following bug:
291446: Provide hook for extra actions after fetching code from repo
and before compiling it (e.g. code generation, parser generators, etc.)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=291446
btw. now after playing a bit with builds I start to get how things work
:-) Things
are much easier once
you find out what's the order of execution and where is what. I feel
that hook-oriented way is more criptic than sequential script. For
example, if there was ever any new build system going to happen,
instead of customTargets.xml, I'd prefer build.xml to look like:
<target name="all">
ÂÂÂ <setup>
ÂÂÂ <fetch>
ÂÂÂ
<...e.g. here is obvious place for postFetch action>
ÂÂÂ
<generate>
ÂÂÂ <assemble>
ÂÂÂ
<package>
ÂÂÂ
<process>
ÂÂÂ
<build>
</target>
Which instantly selfdocuments the kind of steps and their order in
build process. It's also easy to add/remove default steps and put
custom in between. Just my 0.02$
Jacek
2009/10/5 Andrew Niefer Â<aniefer@xxxxxxxxxx>
There are basically two places to do
this kind of processing.Â
As you mentioned, the
customTargets.xml postFetch or preGenerate. ÂI'm not sure of the
details of Athena, but I looked briefly at
org.eclipse.dash.common.releng and it looks like they deliver a
customTargets.xml that gets used normally.Â
If Athena allows you to specify
properties that will be set before calling pde.build, then you could
provide your own customTargets.xml and set "customTargets" to point to
your own copy. Â(Setting this property is one of the first things
pde.build does, which is why you need to set it before calling build.)
ÂI would suggest your copy then import the Athena version. ÂYou're
customTargets.xml can have something like:Â
<availableÂproperty="athenaCustom"Âfile="${builder}/customTargets.xml"Âvalue="${builder}/customTargets.xml"Â/>Â
<import file="${athenaCustom}"/>Â
<target name="preGenerate" >Â
 Âstuff here
overrides the preGenerate target in athenaCustomÂ
</target>Â
The other place to do this is using
a customBuildCallback.xml in the plugin itself.Â
http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_custom_callbacks.htmÂ
The pre.build.jars target would be
appropriate place to do this work.Â
The decision between the two would
normally be based on how specific this processing is to the plugins.
ÂFor something that is looking at a model file in your bundle and
generating .java files I would probably use custom call backs instead
of custom targets. ÂUnless every bundle (or at least a lot of them)
need to do the same processing.Â
-AndrewÂ
Not sure where / how you'd invoke that, or if we
expose that hook in PDEÂ
(yet). I'll copy this to dash-dev@ and to Andrew Niefer - he might haveÂ
a suggestion for how you can do this or what we need to add in Athena.
N
Jacek PospychaÅa wrote:
> hi Nick,
> I'm using Athena and trying to do generate some java files right
afterÂ
> their model get's fetched from CVS.
> Normally I would do this in customTargets.xml, and how would that
lookÂ
> in Athena? I first thought of run target in buildExtra.xml but thisÂ
> seems not invoked.
> I also tried to just put customTargets.xml inside my releng
directory -Â
> no look either.
>Â
> Or should this kind of task be put in specific plug-in inÂ
> customTargets.xml? (I'd prefer to avoid mixing plugin code with
it'sÂ
> build xmls)
>Â
> Thanks!
>Â
> Jacek
--Â
Nick Boldt ::Âhttp://nick.divbyzero.com
Release Engineer :: Eclipse Modeling & Dash Athena
|