-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathDocoptNet.csproj
More file actions
128 lines (112 loc) · 6.78 KB
/
DocoptNet.csproj
File metadata and controls
128 lines (112 loc) · 6.78 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_Roslyn44AnalyzerDir>$(MSBuildProjectDirectory)/bin/roslyn4.4/</_Roslyn44AnalyzerDir>
</PropertyGroup>
<PropertyGroup Condition="'$(RoslynVersion)' == '4.4'">
<DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/obj/**</DefaultItemExcludes>
<DefineConstants>$(DefineConstants);ROSLYN4_4</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>netstandard2.1;netstandard2.0;net47</TargetFrameworks>
<DefineConstants>$(DefineConstants);DOCOPTNET_PUBLIC</DefineConstants>
<!--
TODO Remove the suppression of the following warnings after addressing them:
- error NU5125: The 'licenseUrl' element will be deprecated.
Consider using the 'license' element instead.
-->
<!-- See further below why NU5129 is suppressed. -->
<NoWarn>$(NoWarn);NU5125;NU5129</NoWarn>
<AssemblyName>DocoptNet</AssemblyName>
<VersionPrefix>0.8.3</VersionPrefix>
<AssemblyOriginatorKeyFile>DocoptNet.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<IsPackable>true</IsPackable>
<NetStandardImplicitPackageVersion>2.0.3</NetStandardImplicitPackageVersion>
<PackageId>docopt.net</PackageId>
<PackageLicenseUrl>https://github.com/docopt/docopt.net/blob/master/LICENSE-MIT</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/docopt/docopt.net</PackageProjectUrl>
<PackageIcon>PackageIcon.png</PackageIcon>
<PackageOutputPath>..\..\dist</PackageOutputPath>
<PackageReleaseNotes Condition="'$(PackageReleaseNotes)' == '' And '$(PackageReleaseNotesFile)' != ''">$([System.IO.File]::ReadAllText('$(PackageReleaseNotesFile)'))</PackageReleaseNotes>
<Title>docopt.net, a beautiful command-line parser</Title>
<Authors>Dinh Doan Van Bien;Vladimir Keleshev;Atif Aziz</Authors>
<Description>docopt.net is the .net version of the docopt python beautiful command line parser. docopt.net helps you define an interface for your command-line app, and automatically generate a parser for it. docopt.net is based on conventions that have been used for decades in help messages and man pages for program interface description. Interface description in docopt.net is such a help message, but formalized. Check out http://docopt.org for a more detailed explanation.
Quick example:
var arguments = new Docopt().Apply("Usage: prog [-a] [-b] FILE", args);
if (arguments["-a"].IsTrue) {{ ... }}
</Description>
<Copyright>Copyright (C) 2012-2014 Vladimir Keleshev.
Copyright (C) 2013 Dinh Doan Van Bien.
Copyright (C) 2021 Atif Aziz.
Portions Copyright (C) .NET Foundation and Contributors.
Portions Copyright (C) West Wind Technologies, 2008.
</Copyright>
<PackageTags>parser;command line argument;option library;syntax;shell;beautiful;posix;python;console;command-line;docopt</PackageTags>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.1' Or '$(TargetFramework)' == 'netstandard2.0'">
<DefineConstants>$(DefineConstants);RUNTIME_SERIALIZATION</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net47'">
<Compile Remove="CodeGeneration\*.cs" />
<None Include="CodeGeneration\*.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net47' And '$(RoslynVersion)' != '4.4'">
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.10.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net47' And '$(RoslynVersion)' == '4.4'">
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.4.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net47'">
<AdditionalFiles Include="CodeGeneration\AnalyzerReleases.*.md" />
</ItemGroup>
<ItemGroup>
<!-- Package the generator in the analyzer directory of the nuget package.
Using a versioned roslyn3.10/ folder instead of the unversioned cs/ path ensures the SDK
selects only the best-matching Roslyn variant (3.10 baseline or 4.4) rather than loading both.
See: https://github.com/dotnet/sdk/issues/20355 -->
<None Include="$(OutputPath)\netstandard2.0\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/roslyn3.10/cs" Visible="false" />
<!-- Package the Roslyn 4.4 variant of the generator -->
<None Include="$(_Roslyn44AnalyzerDir)$(Configuration)/netstandard2.0/$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/roslyn4.4/cs" Visible="false" />
<!--
Using a "PackagePath" of "build/$(TargetFramework)/%(Filename)%(Extension)" causes the
following error:
error NU5129: - At least one .targets file was found in 'build/',
but 'build/docopt.net.targets' was not.
Targeting specifically netstandard2.0 and suppressing NU5129 works and it is acceptable
since MSBuild assets are only needed for the source generate that must target netstandard2.0.
-->
<None Include="CodeGeneration\*.props;CodeGeneration\*.targets" Pack="true"
PackagePath="build/netstandard2.0/%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DotNet.ReproducibleBuilds" Version="1.2.39">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="PolySharp" Version="1.15.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.ValueTuple" Version="4.6.1" />
</ItemGroup>
<ItemGroup>
<None Include="PackageIcon.png" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="PublicAPI/$(TargetFramework)/PublicAPI.Shipped.txt" />
<AdditionalFiles Include="PublicAPI/$(TargetFramework)/PublicAPI.Unshipped.txt" />
</ItemGroup>
<Target Name="_ValidateRoslyn44AnalyzerOutput" BeforeTargets="GenerateNuspec">
<PropertyGroup>
<_Roslyn44AnalyzerPath>$(_Roslyn44AnalyzerDir)$(Configuration)/netstandard2.0/$(AssemblyName).dll</_Roslyn44AnalyzerPath>
</PropertyGroup>
<Error Condition="!Exists('$(_Roslyn44AnalyzerPath)')"
Text="Roslyn 4.4 analyzer output not found at '$(_Roslyn44AnalyzerPath)'. Build all Roslyn variants first by running: ./build.ps1 -Pack" />
</Target>
</Project>