// Copyright FreeHEP, 2005-2007. package org.freehep.maven.nar; import java.io.File; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; /** * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark Donszelmann</a> * @version $Id: AbstractNarMojo.java 13350 2007-09-20 18:42:29Z duns $ */ public abstract class AbstractNarMojo extends AbstractMojo implements NarConstants { /** * Skip running of NAR plugins (any) altogether. * * @parameter expression="${nar.skip}" default-value="false" */ private boolean skip; /** * The Architecture for the nar, * Some choices are: "x86", "i386", "amd64", "ppc", "sparc", ... * Defaults to a derived value from ${os.arch} * * @parameter expression="${os.arch}" * @required */ private String architecture; /** * The Operating System for the nar. * Some choices are: "Windows", "Linux", "MacOSX", "SunOS", ... * Defaults to a derived value from ${os.name} * FIXME table missing * * @parameter expression="" */ private String os; /** * Architecture-OS-Linker name. * Defaults to: arch-os-linker. * * @parameter expression="" */ private String aol; /** * Linker * * @parameter expression="" */ private Linker linker; /** * @parameter expression="${project.build.directory}" * @readonly */ private File outputDirectory; /** * @parameter expression="${project.build.finalName}" * @readonly */ private String finalName; /** * Target directory for Nar file construction * Defaults to "${project.build.directory}/nar" for "nar-compile" goal * Defaults to "${project.build.directory}/test-nar" for "nar-testCompile" goal * * @parameter expression="" */ private File targetDirectory; /** * @parameter expression="${project}" * @readonly * @required */ private MavenProject mavenProject; protected boolean shouldSkip() { return skip; } protected String getArchitecture() { architecture = NarUtil.getArchitecture(architecture); return architecture; } protected String getOS() { os = NarUtil.getOS(os); return os; } protected AOL getAOL() throws MojoFailureException { return NarUtil.getAOL(architecture, os, linker, aol); } protected Linker getLinker() { linker = NarUtil.getLinker(linker); return linker; } protected File getOutputDirectory() { return outputDirectory; } protected String getFinalName() { return finalName; } protected File getTargetDirectory() { if (targetDirectory == null) { targetDirectory = new File(mavenProject.getBuild().getDirectory(), "nar"); } return targetDirectory; } protected MavenProject getMavenProject() { return mavenProject; } }