The following shows the possible tags in the NAR configuration section:
<configuration> <ignore/> <skip/> <skipNar/> <skipNarTest/> <architecture/> <os/> <javaHome/> <aol/> <resourceDirectory/> <resourceBinDir/> <resourceIncludeDir/> <resourceLibDir/> <maxCores/> <targetDirectory/> <unpackDirectory/> <output/> <failOnError/> <runtime/> <libtool/> <gnuUseOnWindows/> <gnuSourceDirectory/> <gnuTargetDirectory/> <gnuAutogenSkip/> <gnuConfigureSkip/> <gnuMakeSkip/> <libsName/> <libraries> <library> <type/> <subSystem/> <linkCPP/> <linkFortran/> <linkFortranMain/> <run/> <args> <arg/> </args> </library> </libraries> <tests> <test> <name/> <link/> <run/> <args> <arg/> </args> </test> </tests> <linker> <name/> <prefix/> <toolPath/> <incremental/> <map/> <options> <option/> </options> <testOptions> <testOption/> </testOptions> <clearDefaultOptions/> <libs> <lib> <name/> <type/> <directory/> </lib> </libs> <sysLibs> <sysLib> <name/> <type/> </sysLib> </sysLibs> </linker> <cpp> <name/> <prefix/> <toolPath/> <sourceDirectory/> <includes> <include> </includes> <excludes> <exclude> </excludes> <debug/> <exceptions/> <rtti/> <optimize/> <multiThreaded/> <ccache/> <defines> <define/> </defines> <clearDefaultDefines/> <undefines> <undefine/> </undefines> <clearDefaultUndefines/> <includePaths> <includePath> <path/> <includes> <include/> </includes> </includePath> </includePaths> <systemIncludePaths> <systemIncludePath/> </systemIncludePaths> <options> <option/> </options> <testOptions> <testOption/> </testOptions> <clearDefaultOptions/> <compileOrder/> </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 architecture, 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.
Skip the GNU Make step if you are using the GNU stages. This is useful if you wish to run a GNU configure step but not the full make process.
This tag is use to list multiple libs to be included into the linker. This is really usefull when packaging 3rd party libraries.
Use the CSV notation: <libsName>lib1,lib2</libsName>
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.
Add prefix to the linker name: "prefix-name"
The path that the linker is located within. Default is to use the system's environment.
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.
Additional options for the linker during the nar-testCompile phase.
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.
Add prefix to the compiler name: "prefix-name"
The path that the compiler is located within. Default is to use the system's environment.
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.
Enables or disables the use of ccache (https://ccache.samba.org/) for compilation. Ccache must be present on the system and available the path in the same way your compiler is. Default value: false
Additional list of defines.
Clear the defines specified in AOL properties.
Additional list of undefines.
Clear undefines specified in AOL properties.
List of include paths, relative to $baseDir. Defaults to "$sourceDirectory/include". For each include path you may specify:
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.
Additional options for the C++ compiler during the nar-testCompile phase.
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.