make/uwproj.xsd

changeset 573
2360c1696a34
parent 277
5099a34747c4
child 944
cc23aad6335e
equal deleted inserted replaced
572:e655587695c0 573:2360c1696a34
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.2" 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>
183 <xs:documentation> 194 <xs:documentation>
184 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
185 <code>dependencies</code> are satisfied. 196 <code>dependencies</code> are satisfied.
186 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
187 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).
188 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
189 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.
190 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
191 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.
192 Optionally, a description for the help text of the resulting configure script can be specified by 206 Optionally, a description for the help text of the resulting configure script can be specified by
193 adding a <code>desc</code> element. 207 adding a <code>desc</code> element.
194 </xs:documentation> 208 </xs:documentation>
195 </xs:annotation> 209 </xs:annotation>
196 <xs:choice minOccurs="0" maxOccurs="unbounded"> 210 <xs:choice minOccurs="0" maxOccurs="unbounded">
197 <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>
198 </xs:choice> 220 </xs:choice>
199 <xs:attribute name="name" type="xs:string" use="required"/> 221 <xs:attribute name="name" type="xs:string" use="required"/>
200 <xs:attribute name="arg" type="xs:string"/> 222 <xs:attribute name="arg" type="xs:string"/>
201 <xs:attribute name="default" type="xs:boolean" default="false"/> 223 <xs:attribute name="default" type="xs:boolean" default="false"/>
202 <xs:element name="desc" type="xs:string"/>
203 </xs:complexType> 224 </xs:complexType>
204 225
205 <xs:complexType name="OptionType"> 226 <xs:complexType name="OptionType">
206 <xs:annotation> 227 <xs:annotation>
207 <xs:documentation> 228 <xs:documentation>

mercurial