blob: 14101e4d6354534ab812054a1cf37a44b8c651a7 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<model xmlns="http://modello.codehaus.org/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.4.0 http://modello.codehaus.org/xsd/modello-1.4.0.xsd">
<id>compiler-plugin</id>
<name>CompilerPlugin</name>
<description>A configuration file for compilers.</description>
<defaults>
<default>
<key>package</key>
<value>npanday.model.compiler.plugins</value>
</default>
</defaults>
<classes>
<class rootElement="true" xml.tagName="compilerPlugins">
<name>CompilerPluginsModel</name>
<fields>
<field>
<name>compilerPlugins</name>
<description>Plugin configurations.</description>
<association xml.itemsStyle="flat">
<type>CompilerPlugin</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
<class>
<name>CompilerPlugin</name>
<fields>
<field>
<name>identifier</name>
<version>1.0.0+</version>
<type>String</type>
<description>An id for the compiler. It should be (but is not required to be) unique.</description>
</field>
<field>
<name>pluginClass</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Class name of the compiler. NPanday will pass an instance of this class to the
requesting plugin.
</description>
</field>
<field>
<name>pluginConfiguration</name>
<description>
Configuration properties, that will be passed along to npanday.executable.NetExecutable#init()
</description>
<version>1.5.0+</version>
<type>Properties</type>
<association xml.mapStyle="inline">
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>vendor</name>
<version>1.0.0+</version>
<type>String</type>
<description>Vendor of the compiler: MICROSOFT, MONO, DotGNU</description>
</field>
<field>
<name>vendorVersion</name>
<!-- since NPanday 1.5.0 -->
<version>1.5.0+</version>
<type>String</type>
<description>The vendor version the executable is provided by or compatible with.</description>
</field>
<field>
<name>language</name>
<version>1.0.0+</version>
<type>String</type>
<description>The .NET language to use for compilation.</description>
</field>
<field>
<name>profile</name>
<version>1.0.0</version>
<type>String</type>
<description>Profile for the plugin.</description>
</field>
<field>
<name>profiles</name>
<version>1.5.0+</version>
<association>
<type>Profile</type>
<multiplicity>*</multiplicity>
</association>
<description>Profiles for the plugin.</description>
</field>
<field>
<name>executable</name>
<version>1.0.0+</version>
<type>String</type>
<description>Executable, as run from the command line.</description>
</field>
<field>
<name>probingPaths</name>
<version>1.5.0+</version>
<description>
The paths this executable is likely to be found on. You can use expressions
referring to the pom or registry here. $(project.build.directory) would expect the executable
in the target directory, and $(HKLM/MyComp/MySoftware@InstallDir) would look up a path in the
windows registry.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>frameworkVersions</name>
<description>Supported framework version(s) of the compiler: 1.1.4322, 2.0.50727, 3.0</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>defaultAssemblyPath</name>
<version>1.0.0</version>
<description>
Path (absolute or relative) of the assemblies given in the assembly fields. This field
is used in conjunction with the profile and the assemblies fields.
</description>
<type>String</type>
</field>
<field>
<name>targetFramework</name>
<version>1.0.0</version>
<description>
Target framework for the compiled artifact.
</description>
<type>String</type>
</field>
<field>
<name>assemblies</name>
<version>1.0.0</version>
<description>
Assemblies to reference from the command line. This is used to create custom profiles (such as
.NET Compact) that use a different set of system assemblies. Only include the name of the
assembly, not the .dll extension.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>platforms</name>
<version>1.0.0+</version>
<description>Platform configuration capabilities.</description>
<association>
<type>Platform</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>commandFilter</name>
<version>1.0.0+</version>
<description>A filter for including/excluding user-passed commands options.</description>
<association>
<type>CommandFilter</type>
</association>
</field>
</fields>
</class>
<class>
<name>CommandFilter</name>
<fields>
<field>
<name>excludes</name>
<version>1.0.0+</version>
<description>
The command options to exclude from the user specified pass-through parameters (Currently unused)
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>includes</name>
<version>1.0.0+</version>
<description>
The command options to allow from the user specified pass-through parameters.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
<class>
<name>Platform</name>
<fields>
<field>
<name>operatingSystem</name>
<version>1.0.0+</version>
<type>String</type>
<description>The operating system that the compiler is capable of running on.</description>
</field>
<field>
<name>architecture</name>
<version>1.0.0+</version>
<type>String</type>
<description>The architecture that the compiler is capable of running on.</description>
</field>
</fields>
</class>
<class>
<name>Profile</name>
<version>1.5.0+</version>
<fields>
<field>
<name>id</name>
<identifier>true</identifier>
<version>1.5.0+</version>
<type>String</type>
</field>
<field>
<name>defaultAssemblyPath</name>
<version>1.5.0+</version>
<description>
Path (absolute or relative) of the assemblies given in the assembly fields. This field
is used in conjunction with the profile and the assemblies fields.
</description>
<type>String</type>
</field>
<field>
<name>targetFramework</name>
<version>1.5.0+</version>
<description>
Target framework for the compiled artifact.
</description>
<type>String</type>
</field>
<field>
<name>assemblies</name>
<version>1.5.0+</version>
<description>
Assemblies to reference from the command line. This is used to create custom profiles (such as
.NET Compact) that use a different set of system assemblies. Only include the name of the
assembly, not the .dll extension.
</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
</classes>
</model>