make/uwproj.xsd

changeset 76
eb16be99b0ad
parent 1
e3113d4e2fc0
equal deleted inserted replaced
75:0ce353485509 76:eb16be99b0ad
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3 xmlns="http://unixwork.de/uwproj" 3 xmlns="http://unixwork.de/uwproj"
4 targetNamespace="http://unixwork.de/uwproj" 4 targetNamespace="http://unixwork.de/uwproj"
5 elementFormDefault="qualified" 5 elementFormDefault="qualified"
6 version="0.1" 6 version="0.3"
7 > 7 >
8 <xs:element name="project" type="ProjectType"/> 8 <xs:element name="project" type="ProjectType"/>
9 9
10 <xs:complexType name="ProjectType"> 10 <xs:complexType name="ProjectType">
11 <xs:annotation> 11 <xs:annotation>
15 and an arbitrary number of <code>dependency</code> 15 and an arbitrary number of <code>dependency</code>
16 and <code>target</code> elements. 16 and <code>target</code> elements.
17 </xs:documentation> 17 </xs:documentation>
18 </xs:annotation> 18 </xs:annotation>
19 <xs:sequence> 19 <xs:sequence>
20 <xs:element name="config" type="ConfigType" minOccurs="0"/> 20 <xs:element name="config" type="ConfigType" minOccurs="0" maxOccurs="unbounded"/>
21 <xs:element name="dependency" type="DependencyType" minOccurs="0" maxOccurs="unbounded"/> 21 <xs:element name="dependency" type="DependencyType" minOccurs="0" maxOccurs="unbounded"/>
22 <xs:element name="target" type="TargetType" minOccurs="0" maxOccurs="unbounded"/> 22 <xs:element name="target" type="TargetType" minOccurs="0" maxOccurs="unbounded"/>
23 </xs:sequence> 23 </xs:sequence>
24 <xs:attribute name="version" type="xs:string" use="required" />
24 </xs:complexType> 25 </xs:complexType>
25 26
26 <xs:complexType name="ConfigType"> 27 <xs:complexType name="ConfigType">
27 <xs:annotation> 28 <xs:annotation>
28 <xs:documentation> 29 <xs:documentation>
29 The configuration section. 30 <p>
30 Consists of an arbitrary number of <code>var</code> elements. 31 The configuration section.
32 Consists of an arbitrary number of <code>var</code> elements.
33 </p>
34 <p>
35 The optional <code>platform</code> attribute may specify a <em>single</em> platform identifier and
36 the optional <code>not</code> attribute may specify a comma-separated list of platform identifiers.
37 The configure script shall skip this config declaration if the detected platform is not matching
38 the filter specification of these attributes.
39 </p>
31 </xs:documentation> 40 </xs:documentation>
32 </xs:annotation> 41 </xs:annotation>
33 <xs:sequence> 42 <xs:sequence>
34 <xs:element name="var" type="ConfigVarType" minOccurs="0" maxOccurs="unbounded"/> 43 <xs:element name="var" type="ConfigVarType" minOccurs="0" maxOccurs="unbounded"/>
35 </xs:sequence> 44 </xs:sequence>
45 <xs:attribute name="platform" type="xs:string"/>
46 <xs:attribute name="not" type="xs:string"/>
36 </xs:complexType> 47 </xs:complexType>
37 48
38 <xs:complexType name="ConfigVarType"> 49 <xs:complexType name="ConfigVarType">
39 <xs:annotation> 50 <xs:annotation>
40 <xs:documentation> 51 <xs:documentation>
100 is checked one after another, until one block is satisfied. The result of the first satisfied 111 is checked one after another, until one block is satisfied. The result of the first satisfied
101 dependency declaration is supposed to be applied to the config file. 112 dependency declaration is supposed to be applied to the config file.
102 </p> 113 </p>
103 <p> 114 <p>
104 The optional <code>platform</code> attribute may specify a <em>single</em> platform identifier and 115 The optional <code>platform</code> attribute may specify a <em>single</em> platform identifier and
105 the optional <code>not</code> attribute may specify a comma-separated list of platform identifiers. 116 the optional <code>toolchain</code> attribute may specify a <em>single</em> toolchain.
106 The configure script shall skip this dependency declaration if the detected platform is not 117 The optional <code>not</code> attribute may specify a comma-separated list of platform and/or
107 matching the filter specification of these attributes. 118 toolchain identifiers.
119 The configure script shall skip this dependency declaration if the detected platform and toolchain
120 is not matching the filter specification of these attributes.
108 </p> 121 </p>
109 </xs:documentation> 122 </xs:documentation>
110 </xs:annotation> 123 </xs:annotation>
111 <xs:choice minOccurs="0" maxOccurs="unbounded"> 124 <xs:choice minOccurs="0" maxOccurs="unbounded">
112 <xs:element name="lang" type="LangType"/> 125 <xs:element name="lang" type="LangType"/>
123 </xs:element> 136 </xs:element>
124 <xs:element name="make" type="MakeVarType"/> 137 <xs:element name="make" type="MakeVarType"/>
125 </xs:choice> 138 </xs:choice>
126 <xs:attribute name="name" type="xs:string"/> 139 <xs:attribute name="name" type="xs:string"/>
127 <xs:attribute name="platform" type="xs:string"/> 140 <xs:attribute name="platform" type="xs:string"/>
141 <xs:attribute name="toolchain" type="xs:string"/>
128 <xs:attribute name="not" type="xs:string"/> 142 <xs:attribute name="not" type="xs:string"/>
129 </xs:complexType> 143 </xs:complexType>
130 144
131 <xs:complexType name="FlagsType"> 145 <xs:complexType name="FlagsType">
132 <xs:annotation> 146 <xs:annotation>
180 <xs:documentation> 194 <xs:documentation>
181 Declares an optional feature, that can be enabled during configuration, if all 195 Declares an optional feature, that can be enabled during configuration, if all
182 <code>dependencies</code> are satisfied. 196 <code>dependencies</code> are satisfied.
183 If a feature is enabled, all <code>define</code> and <code>make</code> definitions are 197 If a feature is enabled, all <code>define</code> and <code>make</code> definitions are
184 supposed to be applied to the config file. 198 supposed to be applied to the config file.
199 If a feature is disabled, an optional <code>disabled</code> element may specify which
200 <code>define</code> and <code>make</code> definitions are supposed to be applied.
201 There might also be <code>dependencies</code> when the feature is disabled (e.g. specifying a fallback).
185 In case the optional <code>default</code> attribute is set to true, the feature is enabled by default 202 In case the optional <code>default</code> attribute is set to true, the feature is enabled by default
186 and is supposed to be automatically disabled (without error) when the dependencies are not satisfied. 203 and is supposed to be automatically disabled (without error) when the dependencies are not satisfied.
187 The name that is supposed to be used for the --enable and --disable arguments can be optionally 204 The name that is supposed to be used for the --enable and --disable arguments can be optionally
188 specified with the <code>arg</code> attribute. Otherwise, the <code>name</code> is used by default. 205 specified with the <code>arg</code> attribute. Otherwise, the <code>name</code> is used by default.
206 Optionally, a description for the help text of the resulting configure script can be specified by
207 adding a <code>desc</code> element.
189 </xs:documentation> 208 </xs:documentation>
190 </xs:annotation> 209 </xs:annotation>
191 <xs:choice minOccurs="0" maxOccurs="unbounded"> 210 <xs:choice minOccurs="0" maxOccurs="unbounded">
192 <xs:group ref="TargetDataGroup"/> 211 <xs:group ref="TargetDataGroup"/>
212 <xs:element name="desc" type="xs:string"/>
213 <xs:element name="disabled">
214 <xs:complexType>
215 <xs:choice minOccurs="0" maxOccurs="unbounded">
216 <xs:group ref="TargetDataGroup"/>
217 </xs:choice>
218 </xs:complexType>
219 </xs:element>
193 </xs:choice> 220 </xs:choice>
194 <xs:attribute name="name" type="xs:string" use="required"/> 221 <xs:attribute name="name" type="xs:string" use="required"/>
195 <xs:attribute name="arg" type="xs:string"/> 222 <xs:attribute name="arg" type="xs:string"/>
196 <xs:attribute name="default" type="xs:boolean" default="false"/> 223 <xs:attribute name="default" type="xs:boolean" default="false"/>
197 </xs:complexType> 224 </xs:complexType>

mercurial