Parag,
 
No doubt someone else has already responded... in which case I hope you haven't been swamped by the response!
 
You might want to use the uptodate task to set a property which then causes a rebuild. (NOTE: Since the uptodate task sets the property to false when we want to force a rebuild an extra step was needed. A logical "not" operation would be really helpful here, but doesn't appear to exist.)
 

    <target name="build" description="Build the SlickEdit.Build.Tasks.dll">

        <mkdir dir="${build.output_dir}"/>

        <uptodate property="uptodate">
            <sourcefiles>
                <include name="MyNAntExtensions.build" />
            </sourcefiles>
            <targetfiles>
                <include name="${build.output_dir}\${build.output_file}" />
            </targetfiles>
        </uptodate>

        <property name="rebuild.required" value="false" />
        <property name="rebuild.required" value="true" unless="${uptodate}"/>
        <csc target="library" output="${build.output_dir}\${build.output_file}" debug="${build.debug}" define="${build.defines}" filealign="4096" rebuild="${rebuild.required}>

            <sources>

                <include name="**/*.cs"/>

            </sources>

            <references>

                <include name="${nant.dir}/bin/NAnt.Core.dll" />

            </references>

        </csc>

    </target>

 
Hope this helps,
 
Regards,
Richard


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Parag Chandra
Sent: Wednesday, March 09, 2005 09:26
To: nant-users@lists.sourceforge.net
Subject: [Nant-users] How can I create a dependency on the .build file itself?

Hello,

 

I have a target defined in a MyNAntExtensions.build file, like this:

 

    <target name="build" description="Build the SlickEdit.Build.Tasks.dll">

        <mkdir dir="${build.output_dir}"/>

        <csc target="library" output="${build.output_dir}\${build.output_file}" debug="${build.debug}" define="${build.defines}" filealign="4096">

            <sources>

                <include name="**/*.cs"/>

            </sources>

            <references>

                <include name="${nant.dir}/bin/NAnt.Core.dll" />

            </references>

        </csc>

    </target>

 

The target runs whenever any of the .cs source files have changed, like I would expect. I would also like the target to run whenever the .build file itself has changed. Can someone please tell me how I could accomplish this? Thanks.

 

-Parag Chandra

Reply via email to