+ * The attribute functions as a flag that indicates Fortify is required,
+ * and the value is an ID, prepended to the command line as
+ * {@code sourceanalyzer –b
- * 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. - *
- *- * Example: <narDependencyLibOrder>someGroup:myProduct, - * other.group:productB<narDependencyLibOrder> - *
- * - * @parameter default-value="" - */ - private String narDependencyLibOrder; + /** + * The Linker Some choices are: "msvc", "g++", "CC", "icpc", ... Default is + * Architecture-OS-Linker specific: FIXME: + * table missing + */ + @Parameter + private String name; + + /** + * The prefix for the linker. + */ + @Parameter + private String prefix; + + /** + * Path location of the linker tool + */ + @Parameter + private String toolPath; + + /** + * Enables or disables incremental linking. + */ + @Parameter(required = true) + private boolean incremental = false; + + /** + * Enables or disables the production of a map file. + */ + @Parameter(required = true) + private boolean map = false; + + @Parameter(required = true) + private boolean skipDepLink = false; + + /** + * Options for the linker Defaults to Architecture-OS-Linker specific values. + * FIXME table missing + */ + @Parameter + private List options; + + /** + * Additional options for the linker when running in the nar-testCompile + * phase. + * + */ + @Parameter + private List testOptions; + + /** + * Options for the linker as a whitespace separated list. Defaults to + * Architecture-OS-Linker specific values. Will + * work in combination with <options>. + */ + @Parameter + private String optionSet; + + /** + * Clears default options + */ + @Parameter(required = true) + private boolean clearDefaultOptions; + + /** + * Adds libraries to the linker. + */ + @Parameter + private List/*+ * 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. + *
+ *+ * Example: <narDependencyLibOrder>someGroup:myProduct, + * other.group:productB<narDependencyLibOrder> + *
+ */ + @Parameter + private String narDependencyLibOrder; + + /** + *+ * Specifies to use Default link ordering of libraries that come from mvn dependency tree. + * The Default link order (generated by nar) is a Level-order tree traversing list (also called BFS) of + * dependency tree, given as a comma separated list of groupId:artifactId. + *
+ *+ * default Value is "false" + *
+ */ + @Parameter(defaultValue = "false") + private boolean narDefaultDependencyLibOrder = false; + + /** + * Specifies that if using default dependency lib order then turn on/off logic that pushes + * dependencies to appropriate place in linker line based on transitive dependencies. + * @since 3.5.2 + */ + @Parameter(defaultValue = "false") + protected boolean pushDepsToLowestOrder = false; + + /** + * Specify that the linker should generate an intermediate manifest based on + * the inputs. + */ + @Parameter(property = "nar.generateManifest", defaultValue = "true") + private boolean generateManifest = true; private final Log log; diff --git a/com.github.sdedwards.m2e-nar/src/com/github/maven_nar/NarCompileMojo.java b/com.github.sdedwards.m2e-nar/src/com/github/maven_nar/NarCompileMojo.java index 80e293c..5c78cd4 100644 --- a/com.github.sdedwards.m2e-nar/src/com/github/maven_nar/NarCompileMojo.java +++ b/com.github.sdedwards.m2e-nar/src/com/github/maven_nar/NarCompileMojo.java @@ -28,6 +28,8 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.execution.MavenSession; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; /** * Compiles native source files. @@ -41,6 +43,13 @@ */ public class NarCompileMojo extends AbstractCompileMojo { + /** + * Specify that the final manifest should be embedded in the output (default + * true) or false for side by side. + */ + @Parameter(property = "nar.embedManifest", defaultValue = "true") + protected boolean embedManifest = true; + /** * The current build session instance. * @@ -50,14 +59,14 @@ public class NarCompileMojo extends AbstractCompileMojo */ protected MavenSession session; - protected List