Ignore:
Timestamp:
02/20/11 00:09:57 (9 years ago)
Author:
curtis
Message:

Ostensibly working version of cppwrap-maven-plugin.

Location:
trunk/projects/cppwrap-maven-plugin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/cppwrap-maven-plugin/pom.xml

    r7622 r7626  
    2929  </licenses> 
    3030 
     31  <properties> 
     32    <maven.version>2.0.9</maven.version> 
     33  </properties> 
     34 
    3135  <dependencies> 
    3236    <dependency> 
     
    3842      <groupId>org.apache.maven</groupId> 
    3943      <artifactId>maven-plugin-api</artifactId> 
    40       <version>2.0</version> 
     44      <version>${maven.version}</version> 
     45    </dependency> 
     46    <dependency> 
     47      <groupId>org.apache.maven</groupId> 
     48      <artifactId>maven-project</artifactId> 
     49      <version>${maven.version}</version> 
    4150    </dependency> 
    4251  </dependencies> 
     
    4958          <archive> 
    5059            <manifest> 
    51               <mainClass>loci.maven.plugin.cppwrap</mainClass> 
    5260              <packageName>loci.maven.plugin.cppwrap</packageName> 
    5361            </manifest> 
  • trunk/projects/cppwrap-maven-plugin/src/main/java/loci/maven/plugin/cppwrap/CppWrapMojo.java

    r7625 r7626  
    3535package loci.maven.plugin.cppwrap; 
    3636 
     37import java.io.File; 
     38import java.io.IOException; 
     39import java.util.ArrayList; 
     40import java.util.List; 
     41 
     42import loci.jar2lib.Jar2Lib; 
     43import loci.jar2lib.VelocityException; 
     44 
    3745import org.apache.maven.plugin.AbstractMojo; 
    3846import org.apache.maven.plugin.MojoExecutionException; 
     47import org.apache.maven.project.MavenProject; 
    3948 
    4049/** 
     
    4352 * @author Curtis Rueden 
    4453 * 
    45  * @goal cppwrap 
     54 * @goal wrap 
    4655 */ 
    4756public class CppWrapMojo extends AbstractMojo { 
    4857 
    49         private static final String CPPWRAP_DIR = "src/main/cppwrap/"; 
     58        /** 
     59         * The Maven project to wrap. 
     60         * 
     61         * @parameter expression="${project}" 
     62         * @required 
     63         * @readonly 
     64         */ 
     65        private MavenProject project; 
    5066 
    5167        /** 
     
    5672         *   default-value="src/main/cppwrap/conflicts.txt" 
    5773         */ 
    58         private String conflictsFile = CPPWRAP_DIR + "conflicts.txt"; 
     74        private File conflictsFile; 
    5975 
    6076        /** 
    6177         * Path to header file to prepend to each C++ source file. 
    6278         * 
    63          * @parameter expression="${cppwrap.conflictsFile}" 
    64          *   default-value="src/main/cppwrap/conflicts.txt" 
     79         * @parameter expression="${cppwrap.headerFile}" 
     80         *   default-value="src/main/cppwrap/header.txt" 
    6581         */ 
    66         private String headerFile = CPPWRAP_DIR + "header.txt"; 
     82        private File headerFile; 
    6783 
    6884        /** 
    69          * TODO 
     85         * Path to output folder for C++ project. 
     86         * 
     87         * @parameter expression="${cppwrap.outputDir}" 
     88         *   default-value="target/cppwrap" 
    7089         */ 
     90        private File outputDir; 
     91 
     92        @Override 
    7193        public void execute() throws MojoExecutionException { 
    7294                getLog().info("Hello, world."); 
    73                 // TODO throw MojoExecutionException to cause BUILD ERROR message 
    74                 // TODO throw MojoFailureException to cause BUILD FAILURE message 
     95                getLog().info("conflictsFile = " + conflictsFile); 
     96                getLog().info("headerFile = " + headerFile); 
     97                getLog().info("project = " + project); 
     98                getLog().info("dependencies:"); 
     99                final List<?> list = project.getDependencies(); 
     100                for (Object item : list) { 
     101                        getLog().info("\t" + item); 
     102                } 
     103 
     104                final String projectId = 
     105                        project.getArtifactId().replaceAll("[^\\w\\-]", "_"); 
     106                final String projectName = project.getName(); 
     107                final List<String> jarPaths = new ArrayList<String>(); 
     108                jarPaths.add(project.getArtifact().getFile().getPath()); 
     109                final String conflictsPath = conflictsFile.exists() ? 
     110                        conflictsFile.getPath() : null; 
     111                final String headerPath = headerFile.exists() ? 
     112                        headerFile.getPath() : null; 
     113                final String outputPath = outputDir.getPath(); 
     114 
     115                final Jar2Lib jar2lib = new Jar2Lib() { 
     116                        @Override 
     117                        protected void log(String message) { 
     118                                getLog().info(message); 
     119                        } 
     120                }; 
     121                jar2lib.setProjectId(projectId); 
     122                jar2lib.setProjectName(projectName); 
     123                jar2lib.setLibraryPaths(jarPaths); 
     124                jar2lib.setConflictsPath(conflictsPath); 
     125                jar2lib.setHeaderPath(headerPath); 
     126                jar2lib.setOutputPath(outputPath); 
     127                try { 
     128                        jar2lib.execute(); 
     129                } 
     130                catch (IOException e) { 
     131                        throw new MojoExecutionException("Error invoking jar2lib", e); 
     132                } 
     133                catch (VelocityException e) { 
     134                        throw new MojoExecutionException("Error invoking jar2lib", e); 
     135                } 
    75136        } 
    76137 
Note: See TracChangeset for help on using the changeset viewer.