Use this page to discuss Java support.

This is first implementation of multi-step Java builder. It re-defines next builders: Jar, JavaH, Java, JavaDir, JavaFile, where

What you can do with it:

With Multi-step builders you can simply define build Jar file and specify .java. Or you can add swig.py builder to it and use .i as input to Jar builder, like:

In this call swig builder will build .java from .i files and send it to Java builder, which will build .class files and send them to Jar builder, which will generate .jar file all in one call, so your Java can work similar as C/C++ builds.

From patch above download java build example: project.zip file. This example tested on Windows with BuildDir set and duplicate=0. You have to have JDK and swig in your path.

Example demostrate:

#this is regulat Java build for scons
import os
Import ("env")
denv=env.Copy()
classes=denv.JavaDir(target='classes',source=['com'])
#set correct path for jar
denv['JARCHDIR']=os.path.join(denv.Dir('.').get_abspath(),'classes')
denv.Jar('HelloApplet',classes)

import os
Import ("env")
classes=env.JavaDir(target='classes',source=['com'])
env['WARXFILES']=['SConscript','.cvsignore']
env['WARXDIRS']=['CVS']
env.War('scons',[classes,Dir('../WebContent'),'#/buildout/HelloApplet/HelloApplet.jar'])

Import ("env")
denv=env.Copy()

denv.Append(SWIGFLAGS=['-java'])
denv.SharedLibrary('scons',['JniWrapper.cc','Sample.i'])
denv['JARCHDIR']=denv.Dir('.').get_abspath()
denv.Jar(['Sample.i','A.java'])

Import('env')
denv=env.Copy()
denv['JARCHDIR']=denv.Dir('.').get_abspath()
denv.Jar('myid','MyID.java')
denv.JavaH(denv.Dir('.').get_abspath(),'MyID.java')
denv.SharedLibrary('myid','MyID.cc')

JavaSupport (last edited 2008-07-21 14:01:57 by BabarAbbas)