From: Curt A. <ca...@us...> - 2002-03-17 05:10:30
|
Update of /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks In directory usw-pr-cvs1:/tmp/cvs-serv8718/net/sf/antcontrib/cpptasks Modified Files: CompilerDef.java LinkerDef.java ProcessorDef.java Log Message: JDK 1.1 fixes, removed a few unused methods Index: CompilerDef.java =================================================================== RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/CompilerDef.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CompilerDef.java 17 Mar 2002 01:56:40 -0000 1.5 --- CompilerDef.java 17 Mar 2002 05:10:27 -0000 1.6 *************** *** 63,66 **** --- 63,67 ---- import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration; import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler; + import net.sf.antcontrib.cpptasks.compiler.Processor; import net.sf.antcontrib.cpptasks.gcc.GccCCompiler; import net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler; *************** *** 268,272 **** } super.setName(name); ! Compiler comp = AbstractCompiler.getImplementation(name); if(comp == null) { throw new BuildException(name + " is not recognized as a valid compiler name."); --- 269,273 ---- } super.setName(name); ! Compiler comp = getCompiler(name); if(comp == null) { throw new BuildException(name + " is not recognized as a valid compiler name."); *************** *** 301,304 **** --- 302,331 ---- } + /** + * Returns a Linker instance for the specified name + * + * @param name a known name or a full class name + * @return instance of linker or null + * + */ + public static net.sf.antcontrib.cpptasks.compiler.Compiler + getCompiler(String name) { + if(name.equals("msvc")) { + return DevStudioCCompiler.getInstance(); + } + if(name.equals("gcc")) { + return GccCCompiler.getInstance(); + } + Processor processor = getProcessor(name); + if(processor == null || processor instanceof net.sf.antcontrib.cpptasks.compiler.Compiler) { + return (net.sf.antcontrib.cpptasks.compiler.Compiler) processor; + } + net.sf.antcontrib.cpptasks.compiler.Compiler[] compilers = + processor.getCompilers(); + if(compilers.length > 0) { + return compilers[0]; + } + return null; + } } Index: LinkerDef.java =================================================================== RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/LinkerDef.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** LinkerDef.java 17 Mar 2002 01:56:40 -0000 1.5 --- LinkerDef.java 17 Mar 2002 05:10:27 -0000 1.6 *************** *** 59,62 **** --- 59,63 ---- import net.sf.antcontrib.cpptasks.gcc.GccLinker; import net.sf.antcontrib.cpptasks.compiler.Linker; + import net.sf.antcontrib.cpptasks.compiler.Processor; import net.sf.antcontrib.cpptasks.compiler.AbstractLinker; import org.apache.tools.ant.Project; *************** *** 97,101 **** } super.setName(name); ! Linker linker = AbstractLinker.getImplementation(name); if(linker == null) { throw new BuildException(name + " is not recognized as a valid compiler name."); --- 98,102 ---- } super.setName(name); ! Linker linker = getLinker(name); if(linker == null) { throw new BuildException(name + " is not recognized as a valid compiler name."); *************** *** 255,258 **** --- 256,280 ---- } } + + /** + * Returns a Linker instance for the specified name + * + * @param name a known name or a full class name + * @return instance of linker or null + * + */ + public static Linker getLinker(String name) { + if(name.equals("msvc")) { + return DevStudioLinker.getInstance(); + } + if(name.equals("gcc")) { + return GccLinker.getInstance(); + } + Processor processor = getProcessor(name); + if(processor == null || processor instanceof Linker) { + return (Linker) processor; + } + return processor.getLinker(null); + } } Index: ProcessorDef.java =================================================================== RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/ProcessorDef.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ProcessorDef.java 17 Mar 2002 01:56:40 -0000 1.1 --- ProcessorDef.java 17 Mar 2002 05:10:27 -0000 1.2 *************** *** 71,74 **** --- 71,76 ---- import net.sf.antcontrib.cpptasks.FileVisitor; import org.apache.tools.ant.types.DataType; + import java.lang.reflect.Method; + *************** *** 372,375 **** --- 374,394 ---- return processor.getLinker(type); + } + + protected static Processor getProcessor(String className) { + Object proc = null; + try { + Class implClass = ProcessorDef.class.getClassLoader().loadClass(className); + try { + Method getInstance = implClass.getMethod("getInstance", new Class[0]); + proc = getInstance.invoke(null, new Object[0]); + } + catch(Exception ex) { + proc = implClass.newInstance(); + } + } + catch(Exception ex) { + } + return (Processor) proc; } |