From 846700d44b67b22835b57a1c04f17043db8323a3 Mon Sep 17 00:00:00 2001 From: Mark Donszelmann Date: Thu, 1 Oct 2009 14:33:24 +0200 Subject: Moved files in from freehep-nar-plugin version 2.0-alpha-11-SNAPSHOT --- src/xdocs/nar-dependencies.xml | 152 +++++++++ src/xdocs/properties.xml | 737 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 889 insertions(+) create mode 100644 src/xdocs/nar-dependencies.xml create mode 100644 src/xdocs/properties.xml (limited to 'src/xdocs') diff --git a/src/xdocs/nar-dependencies.xml b/src/xdocs/nar-dependencies.xml new file mode 100644 index 0000000..dd9ae8e --- /dev/null +++ b/src/xdocs/nar-dependencies.xml @@ -0,0 +1,152 @@ + + + + + NAR Dependencies + Mark Donszelmann + + +
+

+ Dependencies on other NARs are handled by the maven dependency mechanism. + + The type for NAR files is nar. A NAR dependency is specified + in the following way: +

+ + +<dependency> + <groupId>DependentGroup</groupId> + <artifactId>DependentArtifact-nar</artifactId> + <version>DependentVersion</version> + <type>nar</type> +</dependency> + + +

+ The artifactId needs to specify a -nar suffix since artifactIds need to be unique + and a jar file may exist with the same name. +

+ +

+ When a nar dependency is found in the POM, Maven will download the property file : +

+ +DependentGroup/nars/DependentArtifact-nar-DependentVersion.nar + +

+ This file is normally generated by the NAR plugin for the DependentArtifact and + may specify the following properties: +

+ + + + + + + + + + + + + +
PropertyDescriptionDefault Value
freehep.nar.narsSpace separated list of other nar files to download. + + DependentArtifact-nar-DependentVersion.noarch.nar + DependentArtifact-nar-DependentVersion.${aol}.nar +
+

+ The default files specified for download will have the common and machine-os specific parts in them + respectively. +

+ +

+ The NAR plugin will look in the project.properties file followed by the + DependentArtifact-nar-DependentVersion.nar file for any of the + following properties: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]DependentArtifact-nar.localSpecifies that the DependentArtifact is installed locally (in a different place than the local + repository. The property freehep.nar.nars will be ignored. + One would typically use this for standard libs such as zlib and others.false
[arch.[os.[linker.]DependentArtifact-nar.dirSpecify a local directory where the DependentArtifact libs can be found.
[arch.[os.[linker.]DependentArtifact-nar.includeSpecify a local directory where the DependentArtifact includes can be found.
[arch.[os.[linker.]DependentArtifact-nar.libsSpecify the libs to use for linking${DependentArtifact}-nar-${DependentVersion}
[arch.[os.[linker.]DependentArtifact-nar.local.libsSpecify the libs to use for linking if the libs are local${DependentArtifact}-nar.libs
[arch.[os.[linker.]DependentArtifact-nar.typeSpecify the type of linking${freehep.nar.libs.type}
[arch.[os.[linker.]DependentArtifact-nar.linkLibsSpecify if libraries should be linked with (there are distributions with only include files).true
DependentArtifact-nar.AOLConverts one AOL into another. For example: YourLib-nar.i386-Linux-g++=i386-Linux-gcc will + make sure you can link from g++ as well as from gcc to YourLib. YourLib needs to be dsitributed + as a gcc linked lib in this case.${freehep.nar.aol.name}
+ +

+ If the property DependentArtifact-nar.local is set to true, then no further files will be + downloaded or installed and the properties DependentArtifact-nar.dir and + DependentArtifact-nar.include will be used for compilation and linking with this DependentArtifact. + In the other case the files specified by freehep.nar.nars will be downloaded, installed in + the local repository, unpacked and used for compilation and linking. + Setting DependentArtifact-nar.local allows the user to avoid downloading a library + which is already installed as a non-NAR file somewhere else on his machine. + The other properties are used in both the local and the NAR case. +

+

+ When generating a set of NAR files, the Artifact-nar-Version.nar file will be generated + for you. This file may contain any of the properties listed above. The NAR plugin generates the + properties freehep.nar.nars and Artifact-nar.linkLibs. Any other properties can be specified + in the nar.properties file in the artifact's top directory (alongside project.properties) and will + be concatenated to the generated nar file. +

+
+ + + + +
\ No newline at end of file diff --git a/src/xdocs/properties.xml b/src/xdocs/properties.xml new file mode 100644 index 0000000..28bcbf5 --- /dev/null +++ b/src/xdocs/properties.xml @@ -0,0 +1,737 @@ + + + + + + FreeHEP NAR Plugin Properties + Mark Donszelmann + + + +
+

+ Below are the properties by group for the NAR plugin. The properties with + the [arch.[os.[linker.]] prefix can either be set in general, + architecture specific, architecture-os specific or architecture-os-linker specific. + The latter overruling the former ones. The defaults for these combiations + are listed in two separate tables below. +

+ + + + + + + + + + + + + + + + + +
FlagDescription
maven -DverboseOutput NAR debug stetements
maven -XOutput maven debug statements
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
freehep.nar.archArchitecture [arch] (ex: x86, i386, sparc, ...) + ${os.arch} +
freehep.nar.osOperating System [os] (ex: Linux, win32, MacOSX, SunOs, ...) + ${os.name} (Note: no spaces) +
[arch.[os.]]freehep.nar.linkerLinker [linker] + (ex: msvc, g++, CC, ...), but you may use any name here and override it in + the property arch.os.linker.freehep.nar.linker to the real linker name.Architecture-OS specific, see below.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
freehep.nar.srcSource file directorysrc/main/cpp
freehep.nar.cpp.src.includesC++ file pattern to include**/*.h **/*.hh **/*.cc **/*.cpp **/*.cxx
freehep.nar.cpp.src.excludesC++ file pattern to exclude
freehep.nar.c.src.includesC file pattern to include**/*.h **/*.c
freehep.nar.c.src.excludesC file pattern to exclude
freehep.nar.fortran.src.includesFortran file pattern to include**/*.f **/*.for
freehep.nar.fortran.src.excludesFortran file pattern to exclude
freehep.nar.test.srcTest source file directorysrc/test/cpp
freehep.nar.compile.includepath + Include path for compilationsrc/main/include
freehep.nar.compile.sysincludepath + System include path for compilation
freehep.nar.compile.withjavaAdds the Java Virtual Machine include files for compilationfalse (automatic if the nar:jni goal is run and headers are generated)
freehep.nar.test.compile.includepath + Include path for compilation of testssrc/test/include
freehep.nar.link.withjavaEnables the linking with the Java Virtual Machine${freehep.nar.compile.withjava}
freehep.nar.jni.classpathClasspath to add for nar:jni goal
freehep.nar.testsList of test (executables) to be generated
freehep.nar.includefilesonlyGenerates only common NAR file. Machine-OS specific NAR file will not be made.false
freehep.nar.aolArchitecture-OS-Linker [aol] name, used for naming the machine specific NAR + and used for the destination directory + arch-os-linker +
freehep.nar.destOutput directory + ${maven.build.dir}/nar +
freehep.nar.test.destTest output directory + ${maven.build.dir}/test-nar +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]freehep.nar.cpp.compilerC++ CompilerArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.c.compilerC CompilerArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.fortran.compilerFortran CompilerArchitecture-OS-Linker specific, see below
arch.os.linker.freehep.nar.linkerReal linker nameArchitecture-OS-Linker specific, see below
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]freehep.nar.rttiEnable Runtime Type Identificationtrue
[arch.[os.[linker.]freehep.nar.exceptionsEnable Exception Handlingtrue
[arch.[os.[linker.]freehep.nar.runtimeUse static or dynamic runtime librarydynamic
[arch.[os.[linker.]freehep.nar.optmizeSet optimization levelnone
[arch.[os.[linker.]freehep.nar.multithreadedEnable multithreadingfalse
[arch.[os.[linker.]freehep.nar.incrementalEnable incremental linkingfalse
[arch.[os.[linker.]freehep.nar.failonerrorAbort if an error is detectedtrue
[arch.[os.[linker.]freehep.nar.libtoolUse libtool to compile and linkfalse
[arch.[os.[linker.]freehep.nar.debugGenerate debugging codefalse
[arch.[os.[linker.]freehep.nar.outtypeType of library to be generated (use "jni" for native shareable code with java)static
[arch.[os.[linker.]freehep.nar.test.outtypeType of test output to be generatedexecutable
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]freehep.nar.compiler.arg.start|mid|end + + Space delimited list of optional compiler arguments. + start|mid|end specifies the position in the compiler + argument list. +
[arch.[os.[linker.]freehep.nar.cpp.compiler.arg.start|mid|end + + Space delimited list of optional cpp compiler arguments. + start|mid|end specifies the position in the compiler + argument list. +
[arch.[os.[linker.]freehep.nar.c.compiler.arg.start|mid|end + + Space delimited list of optional c compiler arguments. + start|mid|end specifies the position in the compiler + argument list. +
[arch.[os.[linker.]freehep.nar.fortran.compiler.arg.start|mid|end + + Space delimited list of optional fortran compiler arguments. + start|mid|end specifies the position in the compiler + argument list. +
[arch.[os.[linker.]freehep.nar.linker.arg.start|mid|end + + Space delimited list of optional linker arguments. + start|mid|end specifies the position in the linker + argument list. +
[arch.[os.[linker.]freehep.nar.linker.test.arg.start|mid|end + + Space delimited list of optional linker arguments for creating the test output. + start|mid|end specifies the position in the linker + argument list. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]freehep.nar.java.homeJava Home (jdk) + ${java.home}/.. +
[arch.[os.[linker.]freehep.nar.java.includeDirectory to look for include files for jni${freehep.nar.java.home}/include
[arch.[os.[linker.]freehep.nar.java.include.osOS specific directory to look for include files for jniArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.java.vmLocation to the jvmArchitecture-OS-Linker specific, see below
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
[arch.[os.[linker.]freehep.nar.lib.prefixPrefix for library nameArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.static.extensionExtension for static libraryArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.shared.extensionExtension for shared libraryArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.plugin.extensionExtension for plugin libraryArchitecture-OS-Linker specific, see below
[arch.[os.[linker.]freehep.nar.executable.extensionExtension for executable outputArchitecture-OS-Linker specific, see below
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionDefault Value
freehep.nar.libs.typeType for librariesstatic
freehep.nar.libsList of library modules to link against [X]
freehep.nar.lib.X.libsList of library names to link againstX
freehep.nar.lib.X.dirDirectory where to look for X${freehep.nar.dest}/lib
freehep.nar.lib.X.typeType of library X${freehep.nar.libs.type}
+
+ + + + + + + + +
[arch.[os.[linker.]freehep.nar.arch.includesInclude these files and libraries in the arch specific nar fileArchitecture-OS-Linker specific, see below
+
+
+ + + + + +
+

+ Below are the defaults for the architecture and os specific properties. Each of the property names + is prefixed with the arch.os name as given in the different columns. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Propertyx86.win32i386.Linuxamd64.Linuxppc.MacOSXsparc.SunOS
freehep.nar.linkermsvcg++g++g++CC
freehep.nar.java.home${java.home}
freehep.nar.java.include.os prefixed with freehep.nar.java.homeinclude/win32include/linuxinclude/linuxinclude/solaris
freehep.nar.java.vm prefixed with freehep.nar.java.homelibjre/lib/i386/clientjre/lib/amd64/serverIGNORED, uses "-framework JavaVM"jre/lib/sparc/server
freehep.nar.multithreadedtrue
freehep.nar.cpp.compilermsvcg++g++g++CC
freehep.nar.c.compilermsvcgccgccgccsuncc
freehep.nar.fortran.compilerdfg77g77g77sunf77
freehep.nar.compiler.arg.start-DWIN32-DLinux-DLinux-DDarwin-lpthread -DSOLARIS2
freehep.nar.linker.arg.start-lpthread
freehep.nar.arch.includeslib/**/*.lib lib/**/*.dlllib/**/*.a lib/**/*.solib/**/*.a lib/**/*.solib/**/*.a lib/**/*.so lib/**/*.dylib lib/**/*.jniliblib/**/*.a lib/**/*.so
freehep.nar.lib.prefixliblibliblib
freehep.nar.static.extension.lib.a.a.a.a
freehep.nar.shared.extension.dll.so.so.dylib.so
freehep.nar.plugin.extension.dll.so.so.bundle.so
freehep.nar.executable.extension.exe
+
+ + +
+

+ Below are the defaults for the architecture, os and linker specific properties. Each of the property names + is prefixed with the arch.os.linker name as given in the different columns. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Propertyx86.win32.g++i386.Linux.icci386.Linux.ecc
freehep.nar.cpp.compilerg++icpcecpc
freehep.nar.c.compilergcciccecc
freehep.nar.fortran.compilerg77ifortifort (should this be efc?)
+
+ + + + +
-- cgit v1.2.3