1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/make/uwproj.xsd Fri Sep 22 23:26:23 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