sa:
>I wanted to add a conditional define. That means if
>variable xyz is set, add a define="XYZ" to the csc task. As
>fas as I've seen, Imust put 2 csc task calls with if and
>unless.

>Is there a more elegant version of doing this?

Given this code in "test.cs":

using System;

namespace EntryPoint {
    public class Test {
       public static void Main() {
          #if (XYZ)
             Console.WriteLine("XYZ is defined");
          #else
             Console.WriteLine("XYZ is not defined");
          #endif
       }
    }
}

The following build file will print the appropriate output depending on 
whether xyz is passed on the command line (e.g. nant -D:xyz=true):

<project name="foo" default="run">
    <property name="defines" value="" />
    <if propertyexists="xyz">
        <property name="defines" value="XYZ" />
    </if>

    <target name="build">
        <csc target="exe" define="${defines}" output="result.exe">
            <sources>
                <includes name="test.cs"/>
            </sources>
        </csc>
    </target>
 
    <target name="run" depends="build">
        <exec program="result.exe" />
    </target>
</project>

Hope this helps.

Best,
Bill

William E. Caputo
ThoughtWorks, Inc.
http://www.williamcaputo.com
--------
idia ktesis, koine chresis





-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to