That solves the minor problem of ; vs , but doesn't solve the real problem. The 
real problem is in getting javac to recognize a filelist/fileset/path. What I'm 
looking for is something to replace the filelist that javac will accept.

On Mar 11, 2010, at 2:23 AM, jan.mate...@rzf.fin-nrw.de wrote:

> -        <filelist dir="." files="@{sourceref}" />  <-- email is about this
> +        <filelist dir="." refid="@{sourceref}" />  <-- email is about this 
> 
> Jan
> 
>> -----Ursprüngliche Nachricht-----
>> Von: Robert Menteer [mailto:reet...@me.com] 
>> Gesendet: Mittwoch, 10. März 2010 21:28
>> An: user@ant.apache.org
>> Betreff: Passing a list of files to javac
>> 
>> How can I get the javac task to use an existing fileset? In my 
>> build.xml I have created several filesets to be used in 
>> multiple places throughout build file. Here is how they have 
>> been defined:
>> 
>>   <fileset dir = "${src}"
>>       id       = "java.source.all">
>>     <include name =  "**/*.java" />
>>   </fileset>
>> 
>>   <fileset dir = "${src}"
>>       id       = "java.source.examples">
>>     <include name = "**/Examples/**/*.java" />
>>   </fileset>
>> 
>>   <fileset dir = "${src}"
>>       id       = "java.source.tests">
>>     <include name = "**/Tests/*.java" />
>>   </fileset>
>> 
>>   <fileset dir = "${src}"
>>       id       = "java.source.project">
>>     <include name = "**/*.java"             />
>>     <exclude name = "**/Examples/**/*.java" />
>>     <exclude name = "**/Tests/**/*.java"    />
>>   </fileset>
>> 
>> I have also used macrodef to compile the java files so the 
>> javac task does not need to be repeated multiple times. The 
>> macro looks like this:
>> 
>> <macrodef name="compile">
>>   <attribute name="sourceref"/>
>>   <sequential>
>>     <javac srcdir         = "${src}"
>>         destdir           = "${build}"
>>         classpathref      = "classpath"
>>         includeantruntime = "no"
>>         debug             = "${debug}">
>>       <filelist dir="." files="@{sourceref}" />  <-- email 
>> is about this
>>     </javac>
>>   </sequential>
>> </macrodef>
>> 
>> What I'm trying to do is compile only the classes that are 
>> needed for specific targets not all the targets in the source 
>> tree. And do so without having to specify the files every 
>> time. Here are how the targets are defined:
>> 
>> <target name = "compile-examples"
>>     depends  = "init">
>>   <compile sourceref = "${toString:java.source.examples}" />
>> </target>
>> 
>> <target name = "compile-project"
>>     depends  = "init">
>>   <compile sourceref = "${toString:java.source.project}" />
>> </target>
>> 
>> <target name = "compile-tests"
>>     depends  = "init">
>>   <compile sourceref = "${toString:java.source.tests}" />
>> </target>
>> 
>> As you can see each target specifies the java files to be 
>> compiled as a simi-colon separated list of absolute file 
>> names. The only problem with this is that javac does not 
>> support filelist. It also does not support fileset, path or 
>> pathset. I've tried using <include name = "@{sourceref}" /> 
>> but it treats the list as a single file name. Another thing I 
>> tried is sending the reference directly (not using toString) 
>> and using <include ref = "@{sourceref}" /> but include does 
>> not have a ref attribute.
>> 
>> I've done a search of this list and noticed another person 
>> with a similar problem. But while it was discussed no solution 
>> was presented.
>> 
>> SO THE QUESTION IS: How do you get the javac task to use a 
>> reference to a fileset that was defined in another part of the 
>> build file? I'm not interested in solutions that cause me to 
>> have multiple javac tasks. Completely re-writting the macro is 
>> acceptable. Changes to the targets are also acceptable 
>> provided redundant code between targets is kept to a minimum.
>> 
>> p.s. Another problem is that fileset wants a comma separated 
>> list. I've only done a brief search for a way to convert 
>> semi-colons to commas and haven't found a way to do that.
>> 
>> p.p.s. Sorry for the yelling but some people are too quick to 
>> post responses that don't address the subject.
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
> For additional commands, e-mail: user-h...@ant.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to