make/uwproj.xsd

changeset 72
b533da8e7411
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/make/uwproj.xsd	Sun Sep 24 18:43:58 2023 +0200
     1.3 @@ -0,0 +1,131 @@
     1.4 +<?xml version="1.0" encoding="UTF-8"?>
     1.5 +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     1.6 +           xmlns="http://unixwork.de/uwproj"
     1.7 +           targetNamespace="http://unixwork.de/uwproj"
     1.8 +           elementFormDefault="qualified"
     1.9 +           version="0.1"
    1.10 +>
    1.11 +    <xs:element name="project" type="ProjectType"/>
    1.12 +
    1.13 +    <xs:complexType name="ProjectType">
    1.14 +        <xs:sequence>
    1.15 +            <xs:element name="config" type="ConfigType" minOccurs="0"/>
    1.16 +            <xs:element name="dependency" type="DependencyType" minOccurs="0" maxOccurs="unbounded"/>
    1.17 +            <xs:element name="target" type="TargetType" minOccurs="0" maxOccurs="unbounded"/>
    1.18 +        </xs:sequence>
    1.19 +    </xs:complexType>
    1.20 +
    1.21 +    <xs:complexType name="ConfigType">
    1.22 +        <xs:sequence>
    1.23 +            <xs:element name="var" type="ConfigVarType" minOccurs="0" maxOccurs="unbounded"/>
    1.24 +        </xs:sequence>
    1.25 +    </xs:complexType>
    1.26 +
    1.27 +    <xs:complexType name="ConfigVarType">
    1.28 +        <xs:simpleContent>
    1.29 +            <xs:extension base="xs:string">
    1.30 +                <xs:attribute name="name" type="xs:string" use="required"/>
    1.31 +                <xs:attribute name="exec" type="xs:boolean" default="false"/>
    1.32 +            </xs:extension>
    1.33 +        </xs:simpleContent>
    1.34 +    </xs:complexType>
    1.35 +
    1.36 +    <xs:complexType name="PkgConfigType">
    1.37 +        <xs:simpleContent>
    1.38 +            <xs:extension base="xs:string">
    1.39 +                <xs:attribute name="atleast" type="xs:string"/>
    1.40 +                <xs:attribute name="exact" type="xs:string"/>
    1.41 +                <xs:attribute name="max" type="xs:string"/>
    1.42 +            </xs:extension>
    1.43 +        </xs:simpleContent>
    1.44 +    </xs:complexType>
    1.45 +
    1.46 +    <xs:simpleType name="LangType">
    1.47 +        <xs:restriction base="xs:string">
    1.48 +            <xs:enumeration value="c"/>
    1.49 +            <xs:enumeration value="cpp"/>
    1.50 +        </xs:restriction>
    1.51 +    </xs:simpleType>
    1.52 +
    1.53 +    <xs:complexType name="DependencyType">
    1.54 +        <xs:choice minOccurs="0" maxOccurs="unbounded">
    1.55 +            <xs:element name="lang" type="LangType"/>
    1.56 +            <xs:element name="cflags" type="FlagsType"/>
    1.57 +            <xs:element name="cxxflags" type="FlagsType"/>
    1.58 +            <xs:element name="ldflags" type="FlagsType"/>
    1.59 +            <xs:element name="pkgconfig" type="PkgConfigType"/>
    1.60 +            <xs:element name="test" type="xs:string"/>
    1.61 +            <xs:element name="make" type="xs:string"/>
    1.62 +        </xs:choice>
    1.63 +        <xs:attribute name="name" type="xs:string"/>
    1.64 +        <xs:attribute name="platform" type="xs:string"/>
    1.65 +        <xs:attribute name="not" type="xs:string"/>
    1.66 +    </xs:complexType>
    1.67 +
    1.68 +    <xs:complexType name="FlagsType">
    1.69 +        <xs:simpleContent>
    1.70 +            <xs:extension base="xs:string">
    1.71 +                <xs:attribute name="exec" type="xs:boolean" default="false"/>
    1.72 +            </xs:extension>
    1.73 +        </xs:simpleContent>
    1.74 +    </xs:complexType>
    1.75 +
    1.76 +    <xs:complexType name="TargetType">
    1.77 +        <xs:choice minOccurs="0" maxOccurs="unbounded">
    1.78 +            <xs:element name="feature" type="FeatureType"/>
    1.79 +            <xs:element name="option" type="OptionType"/>
    1.80 +            <xs:element name="define" type="DefineType"/>
    1.81 +            <xs:element name="dependencies" type="DependenciesType"/>
    1.82 +            <xs:element name="alldependencies">
    1.83 +                <xs:complexType/>
    1.84 +            </xs:element>
    1.85 +        </xs:choice>
    1.86 +        <xs:attribute name="name" type="xs:string"/>
    1.87 +    </xs:complexType>
    1.88 +
    1.89 +    <xs:complexType name="FeatureType">
    1.90 +        <xs:choice minOccurs="0" maxOccurs="unbounded">
    1.91 +            <xs:group ref="TargetDataGroup"/>
    1.92 +        </xs:choice>
    1.93 +        <xs:attribute name="name" type="xs:string" use="required"/>
    1.94 +        <xs:attribute name="arg" type="xs:string"/>
    1.95 +        <xs:attribute name="default" type="xs:boolean" default="false"/>
    1.96 +    </xs:complexType>
    1.97 +
    1.98 +    <xs:complexType name="OptionType">
    1.99 +        <xs:sequence>
   1.100 +            <xs:element name="value" type="OptionValueType" minOccurs="0" maxOccurs="unbounded"/>
   1.101 +            <xs:element name="default" type="OptionDefaultType" minOccurs="0" maxOccurs="unbounded"/>
   1.102 +        </xs:sequence>
   1.103 +        <xs:attribute name="arg" type="xs:string"/>
   1.104 +    </xs:complexType>
   1.105 +
   1.106 +    <xs:complexType name="OptionValueType">
   1.107 +        <xs:choice minOccurs="0" maxOccurs="unbounded">
   1.108 +            <xs:group ref="TargetDataGroup"/>
   1.109 +        </xs:choice>
   1.110 +        <xs:attribute name="str" type="xs:string" use="required"/>
   1.111 +    </xs:complexType>
   1.112 +
   1.113 +    <xs:complexType name="OptionDefaultType">
   1.114 +        <xs:attribute name="value" type="xs:string" use="required"/>
   1.115 +        <xs:attribute name="platform" type="xs:string"/>
   1.116 +    </xs:complexType>
   1.117 +
   1.118 +    <xs:group name="TargetDataGroup">
   1.119 +        <xs:choice>
   1.120 +            <xs:element name="define" type="DefineType" minOccurs="0" maxOccurs="unbounded"/>
   1.121 +            <xs:element name="dependencies" type="DependenciesType" minOccurs="0" maxOccurs="unbounded"/>
   1.122 +            <xs:element name="make" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
   1.123 +        </xs:choice>
   1.124 +    </xs:group>
   1.125 +
   1.126 +    <xs:complexType name="DefineType">
   1.127 +        <xs:attribute name="name" type="xs:string" use="required"/>
   1.128 +        <xs:attribute name="value" type="xs:string"/>
   1.129 +    </xs:complexType>
   1.130 +
   1.131 +    <xs:simpleType name="DependenciesType">
   1.132 +        <xs:restriction base="xs:string"/>
   1.133 +    </xs:simpleType>
   1.134 +</xs:schema>
   1.135 \ No newline at end of file

mercurial