-
Notifications
You must be signed in to change notification settings - Fork 391
/
Copy pathProjectGenerator.cs
86 lines (74 loc) · 3.42 KB
/
ProjectGenerator.cs
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
using System;
using CodeGen.Helpers;
using CodeGen.JsonTypes;
namespace CodeGen.Generators.UnitsNetModularGen
{
internal class ProjectGenerator : GeneratorBase
{
private readonly Quantity _quantity;
public ProjectGenerator(Quantity quantity)
{
_quantity = quantity ?? throw new ArgumentNullException(nameof(quantity));
}
public string Generate()
{
Writer.WL($@"<Project Sdk=""Microsoft.NET.Sdk"">
<!-- NuGet properties -->
<PropertyGroup>
<PackageId>UnitsNet.Duration</PackageId>
<Version>5.0.0-rc008</Version>
<Authors>Andreas Gullberg Larsen</Authors>
<Title>Units.NET {_quantity.Name}</Title>
<Description>Adds {_quantity.Name} units for Units.NET.</Description>
<Copyright>Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com).</Copyright>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<RepositoryUrl>https://github.com/angularsen/UnitsNet</RepositoryUrl>
<PackageIcon>logo-32.png</PackageIcon>
<PackageIconUrl>https://raw.githubusercontent.com/angularsen/UnitsNet/ce85185429be345d77eb2ce09c99d59cc9ab8aed/Docs/Images/logo-32.png</PackageIconUrl>
<PackageProjectUrl>https://github.com/angularsen/UnitsNet</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageTags>{_quantity.Name.ToLower()} unit units quantity quantities measurement si metric imperial abbreviation abbreviations convert conversion parse immutable</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<!-- Assembly and msbuild properties -->
<PropertyGroup>
<AssemblyVersion>5.0.0.0</AssemblyVersion> <!-- Should reflect major part of Version -->
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<RootNamespace>UnitsNet</RootNamespace>
<TargetFramework>netstandard2.0</TargetFramework>
<ProjectGuid>{HashGuid.ToHashGuid(_quantity.Name):B}</ProjectGuid>
</PropertyGroup>
<!-- SourceLink -->
<PropertyGroup>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
<!-- Strong name signing -->
<PropertyGroup>
<AssemblyOriginatorKeyFile>../../UnitsNet.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<SignAssembly>true</SignAssembly>
<AssemblyName>UnitsNet.{_quantity.Name}</AssemblyName>
</PropertyGroup>
<!-- NuGet references that work for all TargetFrameworks, both signed and unsigned. -->
<ItemGroup>
<PackageReference Include=""Microsoft.SourceLink.GitHub"" Version=""1.1.1"" PrivateAssets=""All"" />
<!-- <PackageReference Include=""UnitsNet.Core"" Version="""" />-->
</ItemGroup>
<!-- Project references that replace nuget dependencies while building. -->
<ItemGroup>
<ProjectReference Include=""..\..\..\UnitsNet.Core\UnitsNet.Core.csproj"" />
</ItemGroup>
<!-- Files to include in nuget package -->
<ItemGroup>
<None Include=""../../../Docs/Images/logo-32.png"" Pack=""true"" PackagePath=""/"" />
<None Include=""../../../README.md"" Pack=""true"" PackagePath=""/"" />
</ItemGroup>
</Project>");
return Writer.ToString();
}
}
}