Repository navigation
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
83 lines (79 loc) · 5.7 KB
/
Copy pathDirectory.Build.props
File metadata and controls
83 lines (79 loc) · 5.7 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Nullable>annotations</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
<!-- The platforms are kept to the platform contract (XF0001) -->
<ItemGroup Condition="$(MSBuildProjectName.StartsWith('XForma.Framework.'))">
<ProjectReference Include="$(MSBuildThisFileDirectory)analyzers\XForma.Analyzers.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="all" />
</ItemGroup>
<!-- XForma's controls are kept lookless (XF0003) -->
<ItemGroup Condition="'$(MSBuildProjectName)' == 'XForma'">
<ProjectReference Include="$(MSBuildThisFileDirectory)analyzers\XForma.Analyzers.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" PrivateAssets="all" />
</ItemGroup>
<!--
XForma, the framework, its platforms, the toolkit, its platforms and the
themes track their
public API in PublicAPI.Shipped.txt and PublicAPI.Unshipped.txt: public
API that isn't listed (RS0016), or listed API that's gone (RS0017), fails
the build, so every change to it shows in review.
-->
<PropertyGroup Condition="'$(MSBuildProjectName)' == 'XForma' or '$(MSBuildProjectName)' == 'XForma.Framework' or $(MSBuildProjectName.StartsWith('XForma.Framework.')) or '$(MSBuildProjectName)' == 'XForma.Toolkit' or $(MSBuildProjectName.StartsWith('XForma.Toolkit.')) or $(MSBuildProjectName.StartsWith('XForma.Themes.'))">
<XFormaTracksPublicApi>true</XFormaTracksPublicApi>
</PropertyGroup>
<PropertyGroup Condition="'$(XFormaTracksPublicApi)' == 'true'">
<WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017</WarningsAsErrors>
<!-- Nullable annotations aren't used (RS0037, RS0041), and the overload
rules for optional parameters aren't followed (RS0026, RS0027) -->
<NoWarn>$(NoWarn);RS0026;RS0027;RS0037;RS0041</NoWarn>
<!-- Android's generated Resource class isn't API -->
<AndroidResourceDesignerClassModifier>internal</AndroidResourceDesignerClassModifier>
</PropertyGroup>
<ItemGroup Condition="'$(XFormaTracksPublicApi)' == 'true'">
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0" PrivateAssets="all" />
<AdditionalFiles Include="PublicAPI.Shipped.txt" />
<AdditionalFiles Include="PublicAPI.Unshipped.txt" />
<!-- A multi-targeted project's API on one platform only -->
<AdditionalFiles Include="PublicAPI/$(TargetFramework)/PublicAPI.Shipped.txt" Condition="Exists('PublicAPI/$(TargetFramework)/PublicAPI.Shipped.txt')" />
<AdditionalFiles Include="PublicAPI/$(TargetFramework)/PublicAPI.Unshipped.txt" Condition="Exists('PublicAPI/$(TargetFramework)/PublicAPI.Unshipped.txt')" />
</ItemGroup>
<!--
Packages: what apps reference (XForma and a theme), and the libraries
XForma depends on (the framework and the toolkit, with their platforms;
the toolkit is also usable alone). Nothing else packs.
-->
<PropertyGroup>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectName)' == 'XForma' or $(MSBuildProjectName.StartsWith('XForma.Framework')) or $(MSBuildProjectName.StartsWith('XForma.Toolkit')) or $(MSBuildProjectName.StartsWith('XForma.Themes.'))">
<IsPackable>true</IsPackable>
<Version>0.1.0-preview.1</Version>
<Authors>Hot Chai Games</Authors>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/hotchaipro/XForms</PackageProjectUrl>
<RepositoryUrl>https://github.com/hotchaipro/XForms</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<PackageTags>ui;cross-platform;windows;android;ios;webassembly</PackageTags>
<!-- Docs and symbols, with Source Link (built into the SDK) pointing at GitHub -->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS1591;CS1573;CS1574;CS1584;CS1587;CS1658;CS0419;CS1570;CS1572;CS1734;CS1723</NoWarn>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<ItemGroup Condition="('$(MSBuildProjectName)' == 'XForma' or $(MSBuildProjectName.StartsWith('XForma.Framework')) or $(MSBuildProjectName.StartsWith('XForma.Toolkit')) or $(MSBuildProjectName.StartsWith('XForma.Themes.')))">
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="\" Visible="false" />
<None Include="$(MSBuildThisFileDirectory)docs\icon.png" Pack="true" PackagePath="\" Visible="false" />
</ItemGroup>
<PropertyGroup>
<Description Condition="'$(MSBuildProjectName)' == 'XForma'">Cross-platform UI for .NET: the controls, data binding, and the app's entry point (XFormaApp.Run). Apps reference this package and a theme package.</Description>
<Description Condition="$(MSBuildProjectName.StartsWith('XForma.Framework'))">XForma's platform layer, which the XForma package uses. Apps reference XForma instead.</Description>
<Description Condition="'$(MSBuildProjectName)' == 'XForma.Toolkit'">Cross-platform services for any .NET app: the clipboard, the launcher, preferences, secure storage, sharing, haptics, connectivity and file pickers.</Description>
<Description Condition="$(MSBuildProjectName.StartsWith('XForma.Toolkit.'))">XForma.Toolkit's services on one platform, which an app registers (an XForma app's XFormaApp.Run does).</Description>
<Description Condition="'$(MSBuildProjectName)' == 'XForma.Themes.Basic'">XForma's Basic theme: the controls in a plain, flat look. Pass new BasicTheme() to XFormaApp.Run.</Description>
</PropertyGroup>
</Project>