make/uwproj.xsd

Thu, 28 Mar 2024 23:30:21 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 28 Mar 2024 23:30:21 +0100
changeset 45
18de2af03531
parent 1
e3113d4e2fc0
permissions
-rw-r--r--

simplify how transforms work

0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 <?xml version="1.0" encoding="UTF-8"?>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 xmlns="http://unixwork.de/uwproj"
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 targetNamespace="http://unixwork.de/uwproj"
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 elementFormDefault="qualified"
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 version="0.1"
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 >
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 <xs:element name="project" type="ProjectType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 <xs:complexType name="ProjectType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
11 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
12 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
13 The root element of an uwproj project.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
14 Consists of an optional <code>config</code> element
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
15 and an arbitrary number of <code>dependency</code>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
16 and <code>target</code> elements.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
17 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
18 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 <xs:sequence>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 <xs:element name="config" type="ConfigType" minOccurs="0"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 <xs:element name="dependency" type="DependencyType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 <xs:element name="target" type="TargetType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 </xs:sequence>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 <xs:complexType name="ConfigType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
27 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
28 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
29 The configuration section.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
30 Consists of an arbitrary number of <code>var</code> elements.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
31 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
32 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33 <xs:sequence>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 <xs:element name="var" type="ConfigVarType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
35 </xs:sequence>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 <xs:complexType name="ConfigVarType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
39 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
40 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
41 The definition of a configuration variable.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
42 <p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
43 Configuration variables are supposed to be used in the configure script and are also
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
44 written to the resulting config file (in contrast to make variables, which are only
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
45 written to the config file).
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
46 The <code>name</code> attribute is mandatory, the value is defined by the text body of the element.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
47 The optional Boolean <code>exec</code> attribute (false by default) controls, whether the entire
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
48 definition is automatically executed under command substitution.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
49 </p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
50 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
51 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52 <xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
53 <xs:extension base="xs:string">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
54 <xs:attribute name="name" type="xs:string" use="required"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
55 <xs:attribute name="exec" type="xs:boolean" default="false"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56 </xs:extension>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57 </xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 <xs:complexType name="PkgConfigType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
61 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
62 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
63 Instructs configure to invoke <code>pkg-config</code>, if present on the system, to determine
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
64 compiler and linker flags. The text body of this element defines the package name to search.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
65 To constrain the allowed versions, use the attributes <code>atleast, exact, max</code>.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
66 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
67 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68 <xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 <xs:extension base="xs:string">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
70 <xs:attribute name="atleast" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 <xs:attribute name="exact" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72 <xs:attribute name="max" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
73 </xs:extension>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
74 </xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77 <xs:simpleType name="LangType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
78 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
79 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
80 Requests a compiler for the specified language. Allowed values are
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
81 c, cpp.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
82 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
83 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
84 <xs:restriction base="xs:string">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
85 <xs:enumeration value="c"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 <xs:enumeration value="cpp"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87 </xs:restriction>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88 </xs:simpleType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
89
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
90 <xs:complexType name="DependencyType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
91 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
92 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
93 Declares a dependency.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
94 <p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
95 If the optional <code>name</code> attribute is omitted, the dependency is global
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
96 and must be satisfied, otherwise configuration shall fail.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
97 A <em>named dependency</em> can be referenced by a target (or is implicitly referenced
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
98 by the default target, if no targets are specified).
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
99 Multiple declarations for the same named dependency may exist, in which case each declaration
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
100 is checked one after another, until one block is satisfied. The result of the first satisfied
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
101 dependency declaration is supposed to be applied to the config file.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
102 </p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
103 <p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
104 The optional <code>platform</code> attribute may specify a <em>single</em> platform identifier and
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
105 the optional <code>not</code> attribute may specify a comma-separated list of platform identifiers.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
106 The configure script shall skip this dependency declaration if the detected platform is not
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
107 matching the filter specification of these attributes.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
108 </p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
109 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
110 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 <xs:choice minOccurs="0" maxOccurs="unbounded">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112 <xs:element name="lang" type="LangType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
113 <xs:element name="cflags" type="FlagsType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 <xs:element name="cxxflags" type="FlagsType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 <xs:element name="ldflags" type="FlagsType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 <xs:element name="pkgconfig" type="PkgConfigType"/>
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
117 <xs:element name="test" type="xs:string">
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
118 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
119 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
120 Specifies a custom command that shall be executed to test whether this dependency is satisfied.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
121 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
122 </xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
123 </xs:element>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
124 <xs:element name="make" type="MakeVarType"/>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
125 </xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126 <xs:attribute name="name" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 <xs:attribute name="platform" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128 <xs:attribute name="not" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
130
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131 <xs:complexType name="FlagsType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
132 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
133 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
134 Instructs configure to append the contents of the element's body to the respective flags variable.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
135 If the optional <code>exec</code> flag is set to <code>true</code>, the contents are supposed to be
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
136 executed under command substitution <em>at configuration time</em> before they are applied.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
137 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
138 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
139 <xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140 <xs:extension base="xs:string">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
141 <xs:attribute name="exec" type="xs:boolean" default="false"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
142 </xs:extension>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
143 </xs:simpleContent>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
144 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
145
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
146 <xs:complexType name="TargetType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
147 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
148 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
149 Declares a build target that is supposed to be configured.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
150 <p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
151 If no build target is declared explicitly, an implicit default
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
152 target is generated, which has the <code>alldependencies</code>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
153 flag set.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
154 </p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
155 <p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
156 The optional <code>name</code> attribute is also used to generate a prefix
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
157 for the compiler and linker flags variables.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
158 Furthermore, a target may consist of an arbitrary number of <code>feature</code>,
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
159 <code>option</code>, and <code>define</code> elements.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
160 Named dependencies can be listed (separated by comma) in the <code>dependencies</code>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
161 element. If this target shall use <em>all</em> available named dependencies, the empty
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
162 element <code>alldependencies</code> can be used as a shortcut.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
163 </p>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
164 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
165 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
166 <xs:choice minOccurs="0" maxOccurs="unbounded">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
167 <xs:element name="feature" type="FeatureType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
168 <xs:element name="option" type="OptionType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
169 <xs:element name="define" type="DefineType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
170 <xs:element name="dependencies" type="DependenciesType"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
171 <xs:element name="alldependencies">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
172 <xs:complexType/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
173 </xs:element>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
174 </xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
175 <xs:attribute name="name" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
176 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
177
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
178 <xs:complexType name="FeatureType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
179 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
180 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
181 Declares an optional feature, that can be enabled during configuration, if all
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
182 <code>dependencies</code> are satisfied.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
183 If a feature is enabled, all <code>define</code> and <code>make</code> definitions are
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
184 supposed to be applied to the config file.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
185 In case the optional <code>default</code> attribute is set to true, the feature is enabled by default
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
186 and is supposed to be automatically disabled (without error) when the dependencies are not satisfied.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
187 The name that is supposed to be used for the --enable and --disable arguments can be optionally
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
188 specified with the <code>arg</code> attribute. Otherwise, the <code>name</code> is used by default.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
189 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
190 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
191 <xs:choice minOccurs="0" maxOccurs="unbounded">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
192 <xs:group ref="TargetDataGroup"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
193 </xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
194 <xs:attribute name="name" type="xs:string" use="required"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
195 <xs:attribute name="arg" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
196 <xs:attribute name="default" type="xs:boolean" default="false"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
197 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
198
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
199 <xs:complexType name="OptionType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
200 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
201 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
202 Declares a configuration option.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
203 The option argument name is specified with the <code>arg</code> attribute.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
204 Then, the children of this element specify possible <code>values</code> by defining the conditions
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
205 (in terms of dependencies) and effects (in terms of defines and make variables) of each value.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
206 Finally, a set of <code>default</code>s is specified which supposed to automagically select the most
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
207 appropriate value for a specific platform under the available dependencies (in case the option is not
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
208 explicitly specified by using the command line argument).
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
209 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
210 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
211 <xs:sequence>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
212 <xs:element name="value" type="OptionValueType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
213 <xs:element name="default" type="OptionDefaultType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
214 </xs:sequence>
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
215 <xs:attribute name="arg" type="xs:string" use="required"/>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
216 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
217
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
218 <xs:complexType name="OptionValueType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
219 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
220 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
221 Declares a possible value for the option (in the <code>str</code> attribute) and
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
222 the conditions (<code>dependencies</code>) and effects, the value has.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
223 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
224 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
225 <xs:choice minOccurs="0" maxOccurs="unbounded">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
226 <xs:group ref="TargetDataGroup"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
227 </xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
228 <xs:attribute name="str" type="xs:string" use="required"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
229 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
230
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
231 <xs:complexType name="OptionDefaultType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
232 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
233 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
234 Specifies a default value for this option. Multiple default values can be specified, in which case
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
235 they are checked one after another for availability. With the optional <code>platform</code> attribute,
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
236 the default value can be constrained to a <em>single</em> specific platform and is supposed to be
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
237 skipped by configure, when this platform is not detected.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
238 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
239 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
240 <xs:attribute name="value" type="xs:string" use="required"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
241 <xs:attribute name="platform" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
242 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
243
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
244 <xs:group name="TargetDataGroup">
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
245 <xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
246 <xs:element name="define" type="DefineType" minOccurs="0" maxOccurs="unbounded"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
247 <xs:element name="dependencies" type="DependenciesType" minOccurs="0" maxOccurs="unbounded"/>
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
248 <xs:element name="make" type="MakeVarType" minOccurs="0" maxOccurs="unbounded"/>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
249 </xs:choice>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
250 </xs:group>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
251
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
252 <xs:complexType name="DefineType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
253 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
254 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
255 Specifies C/C++ pre-processor definitions that are supposed to
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
256 be appended to the compiler flags, if supported.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
257 (Note: for example, Fortran also supports C/C++ style pre-processor definitions under
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
258 certain circumstances)
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
259 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
260 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
261 <xs:attribute name="name" type="xs:string" use="required"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
262 <xs:attribute name="value" type="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
263 </xs:complexType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
264
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
265 <xs:simpleType name="DependenciesType">
1
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
266 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
267 <xs:documentation>A comma-separated list of named dependencies.</xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
268 </xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
269 <xs:restriction base="xs:string"/>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
270 </xs:simpleType>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
271
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
272 <xs:simpleType name="MakeVarType">
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
273 <xs:annotation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
274 <xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
275 The text contents in the body of this element are supposed to be appended literally
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
276 to the config file without prior processing.
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
277 </xs:documentation>
e3113d4e2fc0 update uwproj files
Mike Becker <universe@uap-core.de>
parents: 0
diff changeset
278 </xs:annotation>
0
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
279 <xs:restriction base="xs:string"/>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
280 </xs:simpleType>
593b60458157 initial commit
Mike Becker <universe@uap-core.de>
parents:
diff changeset
281 </xs:schema>

mercurial