The following shows the possible tags in the NAR configuration section:
<configuration> <arch/> <os/> <javaHome/> <aol/> <resourceDirectory/> <resourceBinDir/> <resourceIncludeDir/> <resourceLibDir/> <maxCores/> <targetDirectory/> <output/> <failOnError/> <runtime/> <libtool/> <libraries> <library> <type/> <linkCPP/> <linkFortran/> <run/> <args> <arg/> </args> </library> </libraries> <tests> <test> <name/> <link/> <run/> <args> <arg/> </args> </test> </tests> <linker> <name/> <incremental/> <map/> <options> <option/> </options> <clearDefaultOptions/> <libs> <lib> <name/> <type/> <directory/> </lib> </libs> <sysLibs> <sysLib> <name/> <type/> </sysLib> </sysLibs> </linker> <cpp> <name/> <sourceDirectory/> <includes> <include> </includes> <excludes> <exclude> </excludes> <debug/> <exceptions/> <rtti/> <optimize/> <multiThreaded/> <defines> <define/> </defines> <clearDefaultDefines/> <undefines> <undefine/> </undefines> <clearDefaultUndefines/> <includePaths> <includePath/> </includePaths> <systemIncludePaths> <systemIncludePath/> </systemIncludePaths> <options> <option/> </options> <clearDefaultOptions/> </cpp> <c> ... same as for <cpp> </c> <fortran> ... same as for <cpp> </fortran> <java> <include/> <includePaths> <includePath/> </includePaths> <link/> <runtimeDirectory/> <runtime/> </java> <javah> <name/> <bootClassPaths> <bootClassPath/> </bootClassPaths> <classPaths> <classPath/> </classPaths> <jniDirectory/> <classDirectory/> <includes> <include> </includes> <excludes> <exclude> </excludes> </javah> <link/> </configuration>
The Architecture for which we produce the native library. Examples are i386, x86, ppc, ppc64, etc... Default is the system property os.arch.
The Operating System for which we produce the native library. Examples are Windows, Linux, MacOSX, SunOS, ... Default is derived from os.name, without spaces and in the case of Windows generalized.
The location of the Java installation. Default is derived from the system property java.home, corrected for MacOSX.
The Architecture-OS-Linker qualifier. Default is composed from the arch, os and linker.name value.
Directory with NAR related resources. Used by the nar-resources goal, which copies resources over to the target area. Defaults to $basedir/src/nar/resources.
Directory with binaries, relative to $resourceDirectory. Defaults to bin.
Directory with includes, relative to $resourceDirectory. Defaults to include.
Directory with libraries, relative to $resourceDirectory. Defaults to lib.
Specifies the maximum number or Cores/CPUs to use for compilation. If set to 0 it will use all the Cores/CPUs available.
Directory for all NAR related output. Defaults to "$project.build.directory/nar" for "compile" goal Defaults to "$project.build.directory/test-nar" for "compile-test" goal
Name of the output. Default is $project.artifactId-$project.version.
Fail on compilation/linking error. Default is true.
Sets the type of runtime library, possible values "dynamic", "static". Default is dynamic.
Set use of libtool. If set to true, the "libtool " will be prepended to the command line for compatible compilers/linkers. Default is false.
Section to specify what type or libraries to create. For each library you may specify:
Section to specify which test executables should be created. For each test you may specify:
Section to specify parameters for the linker.
The Linker. Some choices are: "msvc", "g++", "CC", "icpc", ... Default is Architecture OS specific.
Enables incremental linking. Default is false.
Enables the production of a map file. Default is false.
Additional options for the linker. Defaults to AOL specific values.
Clear options specified in AOL properties.
Adds libraries to the linker. For each lib you have to specify:
Adds system libraries to the linker. For each syslib you have to specify:
Section to specify parameters for the c++ compiler.
The name of the compiler. Some choices are: "msvc", "g++", "gcc", "CC", "cc", "icc", "icpc", ... Default is AOL specific.
Source directory for native files
Include patterns for sources, relative to sourceDirectory in "ant" style.
Exclude patterns for sources, relative to sourceDirectory in "ant" style.
Compile with debug information. Default is false.
Enables generation of exception handling code. Default is true.
Enables run-time type information. Default is true.
Sets optimization. Possible choices are: "none", "size", "minimal", "speed", "full", "aggressive", "extreme", "unsafe". Default is none.
Enables or disables generation of multithreaded code. Default value: false, except on Windows.
Additional list of defines.
Clear the defines specified in AOL properties.
Additional list of undefines.
Clear undefines specified in AOL properties.
Include Paths, relative to $baseDir. Defaults to "$sourceDirectory/include"
System Include Paths, which are added at the end of all include paths
Additional options for the C++ compiler. Some of these options can be set by specific tags (debug, rtti, ...). Defaults to AOL specific values.
Clear options specified in AOL properties.
Same definitions as for <cpp>
Same definitions as for <cpp>
Section to specify parameters for java
Add Java includes to includepath. Default is false.
List of Java Include Paths, relative to javaHome. Defaults to: "javaHome/include" and "javaHome/include/os-specific".
Add Java Runtime to linker. Default is false.
Relative path from javaHome to the java runtime to link with. Defaults to AOL specific value.
Name of the runtime. Default is jvm.
Section to specify parameters for javah
Javah command to run.
List of boot class paths. By default none.
List of classpaths. By default the classDirectory directory is included and all dependent classes.
The target directory into which to generate the output.
The class directory to scan for class files with native interfaces.
The set of files/patterns to include, relative to classDirectory/sourceDirectory. Defaults to "**/*.class"
A list of exclusion filters, relative to classDirectory/sourceDirectory. Defaults to none.