blob: b74b0dbbdd1b86cf12a722581a8f12e7c074a7ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<!--
/***************************************************************************************************
Copyright (C) 2023 The Qt Company Ltd.
SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
***************************************************************************************************/
-->
<Project>
<Target Name="Clean">
<ItemGroup>
<GeneratedHeaders Include="..\..\include\*" />
<GeneratedHeaders Remove="..\..\include\*.h" />
</ItemGroup>
<Delete Files="@(GeneratedHeaders)" />
</Target>
<Target Name="Build">
<PropertyGroup>
<ClassRegex>class QDotNet\w+\b(?!;)</ClassRegex>
</PropertyGroup>
<ItemGroup>
<Header Include="..\..\include\*.h" />
<Header>
<Text>$([System.IO.File]::ReadAllText('%(Identity)'))</Text>
</Header>
<Header>
<Classes
>$([System.Text.RegularExpressions.Regex]::Matches('%(Text)','$(ClassRegex)'))</Classes>
</Header>
<Class Include="%(Header.Classes)">
<Header>$([System.IO.Path]::GetFileName('%(Header.Identity)'))</Header>
</Class>
<Class>
<Name>$([System.String]::Copy('%(Identity)').Substring(6))</Name>
</Class>
<Class>
<Include>#include <%(Header)></Include>
<Current
Condition="Exists('%(..\..\..\..\include\%(Name)')"
>$([System.IO.File]::ReadAllText('%(..\..\..\..\include\%(Name)').Replace('
',''))</Current>
</Class>
</ItemGroup>
<WriteLinesToFile
Condition="'%(Class.Include)' != '%(Class.Current)'"
File="..\..\include\%(Class.Name)" Lines="#include <%(Class.Header)>"/>
</Target>
<Target Name="Rebuild" DependsOnTargets="Clean;Build"/>
</Project>
|