diff options
author | Mark Donszelmann <Mark.Donszelmann@gmail.com> | 2009-10-06 14:44:29 +0200 |
---|---|---|
committer | Mark Donszelmann <Mark.Donszelmann@gmail.com> | 2009-10-06 14:44:29 +0200 |
commit | 3dca89f0015613ab3f287945965e9f92a6079cd8 (patch) | |
tree | a00619a63c55b74c16ac8116d04b21f322e1747b /src/main/java/org/apache/maven/plugin/nar/Linker.java | |
parent | 75b9fcffc6709f9c65990f6d04d593d3bfb4743d (diff) | |
download | maven-nar-plugin-3dca89f0015613ab3f287945965e9f92a6079cd8.tar.gz maven-nar-plugin-3dca89f0015613ab3f287945965e9f92a6079cd8.tar.bz2 maven-nar-plugin-3dca89f0015613ab3f287945965e9f92a6079cd8.tar.xz maven-nar-plugin-3dca89f0015613ab3f287945965e9f92a6079cd8.zip |
Reformat all source files and add licenses to tests
Diffstat (limited to 'src/main/java/org/apache/maven/plugin/nar/Linker.java')
-rw-r--r-- | src/main/java/org/apache/maven/plugin/nar/Linker.java | 463 |
1 files changed, 246 insertions, 217 deletions
diff --git a/src/main/java/org/apache/maven/plugin/nar/Linker.java b/src/main/java/org/apache/maven/plugin/nar/Linker.java index 253c047..26256cb 100644 --- a/src/main/java/org/apache/maven/plugin/nar/Linker.java +++ b/src/main/java/org/apache/maven/plugin/nar/Linker.java @@ -46,319 +46,348 @@ import org.codehaus.plexus.util.FileUtils; * * @author Mark Donszelmann */ -public class Linker { - - /** - * The Linker Some choices are: "msvc", "g++", "CC", "icpc", ... Default is - * Architecture-OS-Linker specific: FIXME: table missing - * - * @parameter expression="" - */ - private String name; - - /** - * Enables or disables incremental linking. - * - * @parameter expression="" default-value="false" - * @required - */ - private boolean incremental = false; - - /** - * Enables or disables the production of a map file. - * - * @parameter expression="" default-value="false" - * @required - */ - private boolean map = false; - - /** - * Options for the linker Defaults to Architecture-OS-Linker specific - * values. FIXME table missing - * - * @parameter expression="" - */ - private List options; +public class Linker +{ /** - * Options for the linker as a whitespace separated list. - * Defaults to Architecture-OS-Linker specific values. - * Will work in combination with <options>. - * + * The Linker Some choices are: "msvc", "g++", "CC", "icpc", ... Default is Architecture-OS-Linker specific: FIXME: + * table missing + * + * @parameter expression="" + */ + private String name; + + /** + * Enables or disables incremental linking. + * + * @parameter expression="" default-value="false" + * @required + */ + private boolean incremental = false; + + /** + * Enables or disables the production of a map file. + * + * @parameter expression="" default-value="false" + * @required + */ + private boolean map = false; + + /** + * Options for the linker Defaults to Architecture-OS-Linker specific values. FIXME table missing + * + * @parameter expression="" + */ + private List options; + + /** + * Options for the linker as a whitespace separated list. Defaults to Architecture-OS-Linker specific values. Will + * work in combination with <options>. + * * @parameter expression="" */ private String optionSet; /** - * Clears default options - * - * @parameter expression="" default-value="false" - * @required - */ - private boolean clearDefaultOptions; - - /** - * Adds libraries to the linker. - * - * @parameter expression="" - */ - private List/* <Lib> */libs; + * Clears default options + * + * @parameter expression="" default-value="false" + * @required + */ + private boolean clearDefaultOptions; /** - * Adds libraries to the linker. Will work in combination with <libs>. - * The format is comma separated, colon-delimited values (name:type:dir), - * like "myLib:shared:/home/me/libs/, otherLib:static:/some/path". - * + * Adds libraries to the linker. + * + * @parameter expression="" + */ + private List/* <Lib> */libs; + + /** + * Adds libraries to the linker. Will work in combination with <libs>. The format is comma separated, + * colon-delimited values (name:type:dir), like "myLib:shared:/home/me/libs/, otherLib:static:/some/path". + * * @parameter expression="" */ private String libSet; /** - * Adds system libraries to the linker. - * - * @parameter expression="" - */ - private List/* <SysLib> */sysLibs; + * Adds system libraries to the linker. + * + * @parameter expression="" + */ + private List/* <SysLib> */sysLibs; /** - * Adds system libraries to the linker. Will work in combination with <sysLibs>. - * The format is comma separated, colon-delimited values (name:type), - * like "dl:shared, pthread:shared". - * + * Adds system libraries to the linker. Will work in combination with <sysLibs>. The format is comma + * separated, colon-delimited values (name:type), like "dl:shared, pthread:shared". + * * @parameter expression="" */ private String sysLibSet; /** * <p> - * Specifies the link ordering of libraries that come from nar dependencies. The format is - * a comma separated list of dependency names, given as groupId:artifactId. + * Specifies the link ordering of libraries that come from nar dependencies. The format is a comma separated list of + * dependency names, given as groupId:artifactId. * </p> - * * <p> * Example: <narDependencyLibOrder>someGroup:myProduct, other.group:productB<narDependencyLibOrder> * </p> - * - * @parameter expression="" + * + * @parameter expression="" */ private String narDependencyLibOrder; + public Linker() + { + // default constructor for use as TAG + } - public Linker() { - // default constructor for use as TAG - } - - /** - * For use with specific named linker. - * - * @param name - */ - public Linker(String name) { - this.name = name; - } - - public String getName(Properties defaults, String prefix) - throws MojoFailureException { - if ((name == null) && (defaults != null) && (prefix != null)) { - name = defaults.getProperty(prefix + "linker"); - } - if (name == null) { - throw new MojoFailureException( - "NAR: Please specify a <Name> as part of <Linker>"); - } - return name; - } - - public LinkerDef getLinker(AbstractCompileMojo mojo, Project antProject, - String os, String prefix, String type) throws MojoFailureException, - MojoExecutionException { - if (name == null) { - throw new MojoFailureException( - "NAR: Please specify a <Name> as part of <Linker>"); - } - - LinkerDef linker = new LinkerDef(); - linker.setProject(antProject); - LinkerEnum linkerEnum = new LinkerEnum(); - linkerEnum.setValue(name); - linker.setName(linkerEnum); - - // incremental, map - linker.setIncremental(incremental); - linker.setMap(map); - - // Add definitions (Window only) - if (os.equals(OS.WINDOWS) - && (type.equals(Library.SHARED) || type.equals(Library.JNI))) { - Set defs = new HashSet(); - try { - File cSrcDir = mojo.getC().getSourceDirectory(); - if (cSrcDir.exists()) - defs.addAll(FileUtils.getFiles(cSrcDir, "**/*.def", null)); - } catch (IOException e) { - } - try { - File cppSrcDir = mojo.getCpp().getSourceDirectory(); - if (cppSrcDir.exists()) - defs - .addAll(FileUtils.getFiles(cppSrcDir, "**/*.def", - null)); - } catch (IOException e) { - } - try { - File fortranSrcDir = mojo.getFortran().getSourceDirectory(); - if (fortranSrcDir.exists()) - defs.addAll(FileUtils.getFiles(fortranSrcDir, "**/*.def", - null)); - } catch (IOException e) { - } - - for (Iterator i = defs.iterator(); i.hasNext();) { - LinkerArgument arg = new LinkerArgument(); - arg.setValue("/def:" + (File) i.next()); - linker.addConfiguredLinkerArg(arg); - } - } - - // Add options to linker - if (options != null) { - for (Iterator i = options.iterator(); i.hasNext();) { - LinkerArgument arg = new LinkerArgument(); - arg.setValue((String) i.next()); - linker.addConfiguredLinkerArg(arg); - } - } - - if (optionSet != null) { - - String[] opts = optionSet.split("\\s"); - - for (int i = 0; i < opts.length; i++) { + /** + * For use with specific named linker. + * + * @param name + */ + public Linker( String name ) + { + this.name = name; + } + public String getName( Properties defaults, String prefix ) + throws MojoFailureException + { + if ( ( name == null ) && ( defaults != null ) && ( prefix != null ) ) + { + name = defaults.getProperty( prefix + "linker" ); + } + if ( name == null ) + { + throw new MojoFailureException( "NAR: Please specify a <Name> as part of <Linker>" ); + } + return name; + } + + public LinkerDef getLinker( AbstractCompileMojo mojo, Project antProject, String os, String prefix, String type ) + throws MojoFailureException, MojoExecutionException + { + if ( name == null ) + { + throw new MojoFailureException( "NAR: Please specify a <Name> as part of <Linker>" ); + } + + LinkerDef linker = new LinkerDef(); + linker.setProject( antProject ); + LinkerEnum linkerEnum = new LinkerEnum(); + linkerEnum.setValue( name ); + linker.setName( linkerEnum ); + + // incremental, map + linker.setIncremental( incremental ); + linker.setMap( map ); + + // Add definitions (Window only) + if ( os.equals( OS.WINDOWS ) && ( type.equals( Library.SHARED ) || type.equals( Library.JNI ) ) ) + { + Set defs = new HashSet(); + try + { + File cSrcDir = mojo.getC().getSourceDirectory(); + if ( cSrcDir.exists() ) + defs.addAll( FileUtils.getFiles( cSrcDir, "**/*.def", null ) ); + } + catch ( IOException e ) + { + } + try + { + File cppSrcDir = mojo.getCpp().getSourceDirectory(); + if ( cppSrcDir.exists() ) + defs.addAll( FileUtils.getFiles( cppSrcDir, "**/*.def", null ) ); + } + catch ( IOException e ) + { + } + try + { + File fortranSrcDir = mojo.getFortran().getSourceDirectory(); + if ( fortranSrcDir.exists() ) + defs.addAll( FileUtils.getFiles( fortranSrcDir, "**/*.def", null ) ); + } + catch ( IOException e ) + { + } + + for ( Iterator i = defs.iterator(); i.hasNext(); ) + { LinkerArgument arg = new LinkerArgument(); + arg.setValue( "/def:" + (File) i.next() ); + linker.addConfiguredLinkerArg( arg ); + } + } - arg.setValue(opts[i]); - linker.addConfiguredLinkerArg(arg); + // Add options to linker + if ( options != null ) + { + for ( Iterator i = options.iterator(); i.hasNext(); ) + { + LinkerArgument arg = new LinkerArgument(); + arg.setValue( (String) i.next() ); + linker.addConfiguredLinkerArg( arg ); } } - if (!clearDefaultOptions) { - String options = NarUtil.getDefaults().getProperty( - prefix + "options"); - if (options != null) { - String[] option = options.split(" "); - for (int i = 0; i < option.length; i++) { - LinkerArgument arg = new LinkerArgument(); - arg.setValue(option[i]); - linker.addConfiguredLinkerArg(arg); - } - } - } + if ( optionSet != null ) + { + + String[] opts = optionSet.split( "\\s" ); + + for ( int i = 0; i < opts.length; i++ ) + { + + LinkerArgument arg = new LinkerArgument(); + + arg.setValue( opts[i] ); + linker.addConfiguredLinkerArg( arg ); + } + } + + if ( !clearDefaultOptions ) + { + String options = NarUtil.getDefaults().getProperty( prefix + "options" ); + if ( options != null ) + { + String[] option = options.split( " " ); + for ( int i = 0; i < option.length; i++ ) + { + LinkerArgument arg = new LinkerArgument(); + arg.setValue( option[i] ); + linker.addConfiguredLinkerArg( arg ); + } + } + } // record the preference for nar dependency library link order - if (narDependencyLibOrder != null) { + if ( narDependencyLibOrder != null ) + { List libOrder = new LinkedList(); - String[] libs = narDependencyLibOrder.split(","); + String[] libs = narDependencyLibOrder.split( "," ); - for (int i = 0; i < libs.length; i++) { - libOrder.add(libs[i].trim()); + for ( int i = 0; i < libs.length; i++ ) + { + libOrder.add( libs[i].trim() ); } - mojo.setDependencyLibOrder(libOrder); + mojo.setDependencyLibOrder( libOrder ); } // Add Libraries to linker - if ((libs != null) || (libSet != null)) { + if ( ( libs != null ) || ( libSet != null ) ) + { - if (libs != null) { + if ( libs != null ) + { - for (Iterator i = libs.iterator(); i.hasNext();) { + for ( Iterator i = libs.iterator(); i.hasNext(); ) + { Lib lib = (Lib) i.next(); - lib.addLibSet(mojo, linker, antProject); + lib.addLibSet( mojo, linker, antProject ); } } - if (libSet != null) { - addLibraries(libSet, linker, antProject, false); + if ( libSet != null ) + { + addLibraries( libSet, linker, antProject, false ); } } - else { + else + { - String libsList = NarUtil.getDefaults() - .getProperty(prefix + "libs"); + String libsList = NarUtil.getDefaults().getProperty( prefix + "libs" ); - addLibraries(libsList, linker, antProject, false); + addLibraries( libsList, linker, antProject, false ); } // Add System Libraries to linker - if ((sysLibs != null) || (sysLibSet != null)) { + if ( ( sysLibs != null ) || ( sysLibSet != null ) ) + { - if (sysLibs != null) { + if ( sysLibs != null ) + { - for (Iterator i = sysLibs.iterator(); i.hasNext();) { + for ( Iterator i = sysLibs.iterator(); i.hasNext(); ) + { SysLib sysLib = (SysLib) i.next(); - linker.addSyslibset(sysLib.getSysLibSet(antProject)); + linker.addSyslibset( sysLib.getSysLibSet( antProject ) ); } } - if (sysLibSet != null) { - addLibraries(sysLibSet, linker, antProject, true); + if ( sysLibSet != null ) + { + addLibraries( sysLibSet, linker, antProject, true ); } } - else { + else + { - String sysLibsList = NarUtil.getDefaults().getProperty( - prefix + "sysLibs"); + String sysLibsList = NarUtil.getDefaults().getProperty( prefix + "sysLibs" ); - addLibraries(sysLibsList, linker, antProject, true); + addLibraries( sysLibsList, linker, antProject, true ); } - return linker; - } - + return linker; + } - private void addLibraries(String libraryList, LinkerDef linker, Project antProject, boolean isSystem) { + private void addLibraries( String libraryList, LinkerDef linker, Project antProject, boolean isSystem ) + { - if (libraryList == null) { + if ( libraryList == null ) + { return; } - String[] lib = libraryList.split(","); + String[] lib = libraryList.split( "," ); - for (int i = 0; i < lib.length; i++) { + for ( int i = 0; i < lib.length; i++ ) + { - String[] libInfo = lib[i].trim().split(":", 3); + String[] libInfo = lib[i].trim().split( ":", 3 ); LibrarySet librarySet = new LibrarySet(); - if (isSystem) { + if ( isSystem ) + { librarySet = new SystemLibrarySet(); } - librarySet.setProject(antProject); - librarySet.setLibs(new CUtil.StringArrayBuilder(libInfo[0])); + librarySet.setProject( antProject ); + librarySet.setLibs( new CUtil.StringArrayBuilder( libInfo[0] ) ); - if (libInfo.length > 1) { + if ( libInfo.length > 1 ) + { LibraryTypeEnum libType = new LibraryTypeEnum(); - libType.setValue(libInfo[1]); - librarySet.setType(libType); + libType.setValue( libInfo[1] ); + librarySet.setType( libType ); - if (!isSystem && (libInfo.length > 2)) { - librarySet.setDir(new File(libInfo[2])); + if ( !isSystem && ( libInfo.length > 2 ) ) + { + librarySet.setDir( new File( libInfo[2] ) ); } } - if (!isSystem) { - linker.addLibset(librarySet); + if ( !isSystem ) + { + linker.addLibset( librarySet ); } - else { - linker.addSyslibset((SystemLibrarySet)librarySet); + else + { + linker.addSyslibset( (SystemLibrarySet) librarySet ); } } } |