Javac works with what you give it.

If there are dependencies between datasets, then they will not build;
otherwise, they will compile just fine.  There are optimization concerns
though and here are some cases:

Java('build',
     [source1, source2],
     JAVASOURCEPATH='src')


Note: keep in mind that the javac call will multithread automatically;
I don't know if it default to 2 threads or to physical_core_count, but
there is some auto-optimization here.

Case 1:

source1 = [ 1.java, 2.java, #.java ]

source2 = [ a.java, b.java, n.java ]

This is probably fine since you are optimizing the compilation by
splitting of build trees.

Case 2:

source1 = 1.java

source2 = 2.java

sourceN = N.java

This is bad; there is a lot of overhead. Java builds are not
synonomous to c-like compiles.

Case 3:

source1 = dir1

source2 = dir2

This is essentially equivalent to case 1 and is fine.

---

Long story short, the sources should probably be flattened, but there
is also a performance issue with SCons java toolset atm which chokes
on Java( ... ) calls with a large number of source inputs.  Dirk and I
have been discussing this on BitBucket and allowing for splitting of
files like this may be useful currently.

V/R,

William




On Sat, Jul 12, 2014 at 10:31 AM, Gary Oberbrunner <ga...@oberbrunner.com>
wrote:

>
>
>
> On Sat, Jul 12, 2014 at 10:22 AM, William Blevins <wblevins...@gmail.com>
> wrote:
>
>>
>> 2432 definitely duplicates 1772.  The only difference is that 2432
>> proposes a (bad) solution to the problem.
>>
>> Both give the example:
>>
>> Java('build',
>>      [source1, source2],
>>      JAVASOURCEPATH='src')
>>
>> And explain that "their" issue is that source1 and source2 build in parallel 
>> with separate javac commands; this is easily fixable with a FLATTEN call, 
>> but we still haven't asked the important question.  Is this working as 
>> designed and the documentation needs to be updated to reflect or is this a 
>> software failure?
>>
>> I see what you mean now, William.   I'm OK with marking as dup.  As for
> your big question, again I'm not the right guy to say but my understanding
> is javac works much better when all the .java files are passed on the same
> invocation.
>
> --
> Gary
>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev@scons.org
> http://two.pairlist.net/mailman/listinfo/scons-dev
>
>
_______________________________________________
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev

Reply via email to