Skip to content

Commit

Permalink
Merge pull request #127 from ShimakazeProject/feat/refactor
Browse files Browse the repository at this point in the history
重构整个项目
  • Loading branch information
frg2089 authored Dec 13, 2023
2 parents bb301b3 + ded11b3 commit ec5aed5
Show file tree
Hide file tree
Showing 292 changed files with 3,920 additions and 2,924 deletions.
112 changes: 50 additions & 62 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,37 @@

<PropertyGroup>
<ShimakazeSdk_RootFolder>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)'))</ShimakazeSdk_RootFolder>
<ShimakazeSdk_ApplicationFolder>$([MSBuild]::NormalizeDirectory('$(ShimakazeSdk_RootFolder)', 'app'))</ShimakazeSdk_ApplicationFolder>
<ShimakazeSdk_LibraryFolder>$([MSBuild]::NormalizeDirectory('$(ShimakazeSdk_RootFolder)', 'lib'))</ShimakazeSdk_LibraryFolder>
<ShimakazeSdk_SourceFolder>$([MSBuild]::NormalizeDirectory('$(ShimakazeSdk_RootFolder)', 'src'))</ShimakazeSdk_SourceFolder>
<ShimakazeSdk_UnitTestFolder>$([MSBuild]::NormalizeDirectory('$(ShimakazeSdk_RootFolder)', 'test'))</ShimakazeSdk_UnitTestFolder>

<ShimakazeSdk_ProjectType Condition=" $(MSBuildProjectFullPath.StartsWith('$(ShimakazeSdk_ApplicationFolder)')) ">Application</ShimakazeSdk_ProjectType>
<ShimakazeSdk_ProjectType Condition=" $(MSBuildProjectFullPath.StartsWith('$(ShimakazeSdk_LibraryFolder)')) ">Library</ShimakazeSdk_ProjectType>
<ShimakazeSdk_ProjectType Condition=" $(MSBuildProjectFullPath.StartsWith('$(ShimakazeSdk_UnitTestFolder)')) ">UnitTest</ShimakazeSdk_ProjectType>
<ShimakazeSdk_IsCSharp>False</ShimakazeSdk_IsCSharp>
<ShimakazeSdk_IsTest>False</ShimakazeSdk_IsTest>

<Version>0.0.1-preview.12-patch.1</Version>
<ShimakazeSdk_IsCSharp Condition=" $(MSBuildProjectExtension) == '.csproj' ">True</ShimakazeSdk_IsCSharp>
<ShimakazeSdk_IsTest Condition=" $(MSBuildProjectFullPath.StartsWith('$(ShimakazeSdk_UnitTestFolder)')) ">True</ShimakazeSdk_IsTest>
</PropertyGroup>

<!-- CSharp Common -->
<PropertyGroup Condition=" '$(ShimakazeSdk_ProjectType)' != '' ">
<TargetFrameworks>net8.0</TargetFrameworks>
<!-- CSharp -->
<PropertyGroup Condition="$(ShimakazeSdk_IsCSharp)">
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0;net8.0</TargetFrameworks>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<IncludeSymbols>True</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<CopyLocalLockFileAssemblies>True</CopyLocalLockFileAssemblies>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' != '' ">
<PackageReference Include="IDisposableAnalyzers" Version="4.0.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<RootNamespace>$(MSBuildProjectName.Replace('.Abstractions', ''))</RootNamespace>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' != 'UnitTest' ">
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests" />
</ItemGroup>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>

<PropertyGroup Condition=" '$(ShimakazeSdk_ProjectType)' != '' ">
<IconPath Condition=" '$(IconPath)' == '' AND Exists('$(MSBuildProjectDirectory)\Assets\logo.png')">$(MSBuildProjectDirectory)\Assets\logo.png</IconPath>
<IconPath Condition=" '$(IconPath)' == '' AND Exists('$(ShimakazeSdk_RootFolder)assets\logo.png')">$(ShimakazeSdk_RootFolder)assets\logo.png</IconPath>
<ReadmeFile Condition=" '$(ReadmeFile)' == '' AND Exists('$(MSBuildProjectDirectory)\ReadMe.md')">$(MSBuildProjectDirectory)\ReadMe.md</ReadmeFile>
<ReadmeFile Condition=" '$(ReadmeFile)' == '' AND Exists('$(ShimakazeSdk_RootFolder)ReadMe.md')">$(ShimakazeSdk_RootFolder)ReadMe.md</ReadmeFile>
<!-- Polyfill -->
<NoWarn Condition="$(TargetFramework.StartsWith('netstandard'))">1701;1702;8601;8604;8767</NoWarn>
<Nullable Condition="$(TargetFramework.StartsWith('netstandard'))">annotations</Nullable>

<Authors>Shimakaze Project</Authors>
<Copyright>Copyright © 2020 - $([System.DateTime]::Now.ToString("yyyy")) $(Authors)</Copyright>
Expand All @@ -55,67 +45,65 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<PackageOutputPath>$(ShimakazeSdk_RootFolder)nupkg</PackageOutputPath>

<IconPath Condition=" '$(IconPath)' == '' AND Exists('$(MSBuildProjectDirectory)\Assets\logo.png')">$(MSBuildProjectDirectory)\Assets\logo.png</IconPath>
<IconPath Condition=" '$(IconPath)' == '' AND Exists('$(ShimakazeSdk_RootFolder)assets\logo.png')">$(ShimakazeSdk_RootFolder)assets\logo.png</IconPath>
<ReadmeFile Condition=" '$(ReadmeFile)' == '' AND Exists('$(MSBuildProjectDirectory)\ReadMe.md')">$(MSBuildProjectDirectory)\ReadMe.md</ReadmeFile>
<ReadmeFile Condition=" '$(ReadmeFile)' == '' AND Exists('$(ShimakazeSdk_RootFolder)ReadMe.md')">$(ShimakazeSdk_RootFolder)ReadMe.md</ReadmeFile>
</PropertyGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' != '' ">
<None
Include="$(IconPath)"
Condition=" '$(IconPath)' != '' "
Pack="True"
PackagePath="\" />
<None
Include="$(ReadmeFile)"
Condition=" '$(ReadmeFile)' != '' "
Pack="True"
PackagePath="\" />
<ItemGroup Condition="$(ShimakazeSdk_IsCSharp)">
<None Include="$(IconPath)" Condition=" '$(IconPath)' != '' " Pack="True" PackagePath="\" />
<None Include="$(ReadmeFile)" Condition=" '$(ReadmeFile)' != '' " Pack="True" PackagePath="\" />
</ItemGroup>

<!-- CSharp Application Common -->
<PropertyGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'Application' ">
<OutputType>Exe</OutputType>
<PackAsTool>true</PackAsTool>
</PropertyGroup>
<ItemGroup Condition="$(ShimakazeSdk_IsCSharp)">
<PackageReference Include="IDisposableAnalyzers" Version="4.0.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'Application' ">
<ProjectReference Include="$(ShimakazeSdk_LibraryFolder)Shimakaze.Sdk\Shimakaze.Sdk.csproj" />
<!-- CSharp Not UnitTest -->
<ItemGroup Condition="!$(ShimakazeSdk_IsTest)">
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests" />
</ItemGroup>

<!-- CSharp UnitTest Common -->
<PropertyGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<RootNamespace>$(MSBuildProjectName.Replace('.Tests', ''))</RootNamespace>
<!-- CSharp UnitTest -->
<PropertyGroup Condition="$(ShimakazeSdk_IsTest)">
<TargetFrameworks>net8.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>

<GenerateDocumentationFile>False</GenerateDocumentationFile>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<IsPackable>False</IsPackable>
<GenerateDocumentationFile>False</GenerateDocumentationFile>
<CollectCoverage>True</CollectCoverage>
<CoverletOutputFormat>lcov</CoverletOutputFormat>
<ExcludeByAttribute>Obsolete,GeneratedCodeAttribute,ExcludeFromCodeCoverageAttribute</ExcludeByAttribute>
</PropertyGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
<PackageReference Include="coverlet.collector" Version="3.2.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.msbuild" Version="3.2.0">
<ItemGroup Condition="$(ShimakazeSdk_IsTest)">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0" />
<PackageReference Include="coverlet.msbuild" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="ReportGenerator" Version="5.1.19" />
<PackageReference Include="ReportGenerator" Version="5.2.0" />
</ItemGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<ProjectReference Include="$([MSBuild]::NormalizePath('$(ShimakazeSdk_LibraryFolder)', '$(RootNamespace)', '$(RootNamespace).csproj'))" />
<ItemGroup Condition="$(ShimakazeSdk_IsTest)">
<ProjectReference Include="$([MSBuild]::NormalizePath('$(ShimakazeSdk_SourceFolder)', '$(MSBuildProjectName.Replace('.Tests', ''))', '$(MSBuildProjectName.Replace('.Tests', '')).csproj'))" />
</ItemGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<ItemGroup Condition="$(ShimakazeSdk_IsTest)">
<None Include="Assets\**\*" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

<ItemGroup Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<ItemGroup Condition="$(ShimakazeSdk_IsTest)">
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
</ItemGroup>

Expand Down
16 changes: 12 additions & 4 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project>

<!-- CSharp Common -->
<!-- Generate BuildStamp -->
<Target Name="GenerateBuildStamp" BeforeTargets="GetAssemblyAttributes" Condition=" '$(ShimakazeSdk_ProjectType)' != '' ">
<!-- This code fragment follows the MIT license agreement. -->
<Target
Name="GenerateBuildStamp"
BeforeTargets="GetAssemblyAttributes"
Condition="$(ShimakazeSdk_IsCSharp)">
<!-- Git Commit Hash -->
<Exec Command="git rev-parse --short HEAD" ConsoleToMsBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="__GitRevision" />
Expand All @@ -23,15 +24,22 @@
</Target>

<!-- CSharp UnitTest Common -->
<Target Name="GenerateHtmlCoverageReport" AfterTargets="GenerateCoverageResultAfterTest" Condition=" '$(ShimakazeSdk_ProjectType)' == 'UnitTest' ">
<Target
Name="GenerateHtmlCoverageReport"
AfterTargets="GenerateCoverageResultAfterTest"
Condition="$(ShimakazeSdk_IsTest)">

<ItemGroup>
<ReportFiles Include="$(ShimakazeSdk_UnitTestFolder)**\coverage.*.info" />
</ItemGroup>

<Message Text="@(ReportFiles)" Importance="high" />

<ReportGenerator
ReportFiles="@(ReportFiles)"
TargetDirectory="$(ShimakazeSdk_RootFolder)coverage\html"
ReportTypes="html" />

<ReportGenerator
ReportFiles="@(ReportFiles)"
TargetDirectory="$(ShimakazeSdk_RootFolder)coverage"
Expand Down
Loading

0 comments on commit ec5aed5

Please sign in to comment.