Why don't you just implement it as a nant extension function and then see if there is enough interest to include it in either nantcontrib or nant core.
Ian Giuseppe Greco wrote:
----- Original Message ----- From: "Giuseppe Greco" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, March 02, 2004 7:49 AM Subject: [nant-dev] Current target again...
...I don't immediately see a need for this.
My proposal is to introduce the concept of "generic target". Let's go back to our gateway build file described above, and rewrite the <recurse> target as a generic target:
<?xml version="1.0"?>
<project name="myProject" default="*">
<target name="*" description="Builds recursively all subprojects"> <foreach item="Folder" property="foldername"> <in> <items> <includes name="*"/> <excludes name="CVS"/> </items> </in> <do> <nant buildfile="${foldername}/default.build" target="${project.config} ${nant.current.target}"/> </do> </foreach> </target>
</project>
Generic targets would specify "*" as their name, and NAnt
would always execute them.
Let me show you a more detailed example. Here is a fragment of the caller build file (the one in the project's top directory):
...
<target name="test" depends="init" description="Tests the current configuration"> <property name="target" value="test"/> <nant buildfile="src/default.build"/> </target>
...
In this example, the "target" property is set to "test", and then the <nant> task calls the gateway build file described in my previous email. If NAnt would support generic targets, we could reduce the target above like this:
...
<target name="test" depends="init" description="Tests the current configuration"> <nant buildfile="src/default.build" target="${target::get-current-target()}"/> </target>
...
and then let gateway build files forward targets automatically:
<?xml version="1.0"?>
project
name="myProject" default="*"> <target name="*" description="Builds recursively all subprojects"> <foreach item="Folder" property="foldername"> <in> <items> <includes name="*"/> <excludes name="CVS"/> </items> </in> <do> <nant buildfile="${foldername}/default.build" target="${project.config} ${target::get-current-target()}"/> </do> </foreach> </target> </project>
I think this would be a nice feature... but, of course, that's just my opinion.
j3d.
At that point we also need a way
to get the target name specified by the calling build file,
and the answer is a built-in property named ${nant.current.target}.
I'm not sure we should implement this, but if we should we'd definitely implement it as a function, not a built-in property.
I guess we could add the following functions :
target::get-target-name or target::get-current-target()
this function returns the name of the current target this would throw an exception when there's no current target
target::get-description(string targetname)
this functions returns the description of the specified target this would throw an exception when the targetname is null or the given target does not exist
But I'd like to get feedback of other committers first ...
Gert
---------------------------------------- Giuseppe Greco
::agamura::
phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web: www.agamura.com ----------------------------------------
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers
--
Ian MacLean, Developer, ActiveState, a division of Sophos
http://www.ActiveState.com
------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
