Sic.Framework-Nanjing-Baishi/BuildTools/GitVersion/GitVersion.MsBuild.props

98 lines
6.8 KiB
Plaintext
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GitVersionOutputFile Condition="'$(GitVersionOutputFile)' == ''">$([MSBuild]::EnsureTrailingSlash($(BaseIntermediateOutputPath)))gitversion.json</GitVersionOutputFile>
<Language Condition=" '$(Language)' == '' Or '$(DefaultLanguageSourceExtension)' == ''">C#</Language>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)/../</SolutionDir>
<GitVersionPath Condition="'$(GitVersionPath)' == '' And '$(GitVersionUseSolutionDir)' == 'true'">$(SolutionDir)</GitVersionPath>
<GitVersionPath Condition="'$(GitVersionPath)' == ''">$(MSBuildProjectDirectory)</GitVersionPath>
<GitVersion_NoFetchEnabled Condition="$(GitVersion_NoFetchEnabled) == ''">false</GitVersion_NoFetchEnabled>
<GitVersion_NoNormalizeEnabled Condition="$(GitVersion_NoNormalizeEnabled) == ''">false</GitVersion_NoNormalizeEnabled>
<GitVersion_NoCacheEnabled Condition="$(GitVersion_NoCacheEnabled) == ''">false</GitVersion_NoCacheEnabled>
<GitVersion_ToolArgments>$(GitVersion_CommandLineArguments) -output file -outputfile $(GitVersionOutputFile)</GitVersion_ToolArgments>
<GitVersion_ToolArgments Condition=" '$(GitVersion_NoFetchEnabled)' == 'true' ">$(GitVersion_ToolArgments) -nofetch</GitVersion_ToolArgments>
<GitVersion_ToolArgments Condition=" '$(GitVersion_NoNormalizeEnabled)' == 'true' ">$(GitVersion_ToolArgments) -nonormalize</GitVersion_ToolArgments>
<GitVersion_ToolArgments Condition=" '$(GitVersion_NoCacheEnabled)' == 'true' ">$(GitVersion_ToolArgments) -nocache</GitVersion_ToolArgments>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildRuntimeType)' == 'Full' Or '$(MSBuildRuntimeType)' == 'Mono'">
<GitVersionFileExe>&quot;$(SolutionDir)BuildTools/GitVersion/net48/gitversion.exe&quot;</GitVersionFileExe>
<GitVersionAssemblyFile>$(SolutionDir)BuildTools/GitVersion/net48/GitVersion.MsBuild.dll</GitVersionAssemblyFile>
</PropertyGroup>
<PropertyGroup>
<GitVersionFileExe Condition="'$(GitVersionFileExe)' == ''">dotnet --roll-forward Major &quot;$(MSBuildThisFileDirectory)netcoreapp3.1/gitversion.dll&quot;</GitVersionFileExe>
<GitVersionAssemblyFile Condition="'$(GitVersionAssemblyFile)' == ''">$(MSBuildThisFileDirectory)netcoreapp3.1/GitVersion.MsBuild.dll</GitVersionAssemblyFile>
</PropertyGroup>
<PropertyGroup>
<DisableGitVersionTask Condition=" '$(DisableGitVersionTask)' == '' ">false</DisableGitVersionTask>
<!-- Property that enables WriteVersionInfoToBuildLog -->
<WriteVersionInfoToBuildLog Condition=" '$(DisableGitVersionTask)' == 'true' ">false</WriteVersionInfoToBuildLog>
<WriteVersionInfoToBuildLog Condition=" '$(WriteVersionInfoToBuildLog)' == '' ">true</WriteVersionInfoToBuildLog>
<!-- Property that enables UpdateAssemblyInfo. -->
<UpdateAssemblyInfo Condition=" '$(DisableGitVersionTask)' == 'true' ">false</UpdateAssemblyInfo>
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == '' ">true</UpdateAssemblyInfo>
<GenerateAssemblyFileVersionAttribute Condition=" '$(UpdateAssemblyInfo)' == 'true' ">false</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute Condition=" '$(UpdateAssemblyInfo)' == 'true' ">false</GenerateAssemblyInformationalVersionAttribute>
<GenerateAssemblyVersionAttribute Condition=" '$(UpdateAssemblyInfo)' == 'true' ">false</GenerateAssemblyVersionAttribute>
<!-- Property that enables GenerateGitVersionInformation -->
<GenerateGitVersionInformation Condition=" '$(DisableGitVersionTask)' == 'true' ">false</GenerateGitVersionInformation>
<!--
During XAML's "GenerateTemporaryTargetAssembly" a new project file is generated and compiled
which already contains the "GeneratedCodeFiles", i.e. GitVersionInformation.g.cs.
Then, when GenerateGitVersionInformation is called in this temp-build, the file is added another time, which results in an error at CSC.
Here we try to detect this situation and prevent GenerateGitVersionInformation from running.
(The global property "_TargetAssemblyProjectName" is injected by XAML's above-mentioned task)
-->
<GenerateGitVersionInformation Condition=" '$(GenerateGitVersionInformation)' == '' And '$(_TargetAssemblyProjectName)' != '' ">false</GenerateGitVersionInformation>
<GenerateGitVersionInformation Condition=" '$(GenerateGitVersionInformation)' == '' ">true</GenerateGitVersionInformation>
<!--
Compounding on the previous "GenerateTemporaryTargetAssembly" explanation, "UpdateAssemblyInfo" is
also called in this temp-build. This results in a warning since we already updated assembly info.
Prevent UpdateAssemblyInfo from running a second time.
-->
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == 'true' And '$(_TargetAssemblyProjectName)' != '' ">false</UpdateAssemblyInfo>
<!-- Property that enables GetVersion -->
<GetVersion Condition=" '$(DisableGitVersionTask)' == 'true' ">false</GetVersion>
<GetVersion Condition=" '$(GetVersion)' == '' ">true</GetVersion>
<GenerateGitVersionWixDefines Condition=" '$(DisableGitVersionTask)' == 'true' ">false</GenerateGitVersionWixDefines>
<GenerateGitVersionWixDefines Condition=" '$(GenerateGitVersionWixDefines)' == '' ">true</GenerateGitVersionWixDefines>
<!-- Property that enables setting of Version -->
<UpdateVersionProperties Condition=" '$(DisableGitVersionTask)' == 'true' ">false</UpdateVersionProperties>
<UpdateVersionProperties Condition=" '$(UpdateVersionProperties)' == '' ">true</UpdateVersionProperties>
<UseFullSemVerForNuGet Condition=" '$(UseFullSemVerForNuGet)' == '' ">true</UseFullSemVerForNuGet>
</PropertyGroup>
<PropertyGroup>
<GitVersionTargetsBefore>
BeforeCompile;
CoreCompile;
GetAssemblyVersion;
GenerateNuspec;
_GenerateRestoreProjectSpec;
_GetOutputItemsFromPack;
EnsureWixToolsetInstalled
</GitVersionTargetsBefore>
<!--
Ensure GetVersion runs prior to XAML's Markup Compiler in order to have the assembly version available.
Otherwise the generated resource URI's are ambiguous when multiple versions are loaded simultaneously (i.e. in plugins)
-->
<MarkupCompilePass1DependsOn>$(MarkupCompilePass1DependsOn);GetVersion;UpdateAssemblyInfo;GenerateGitVersionInformation</MarkupCompilePass1DependsOn>
<GetPackageVersionDependsOn>$(GetPackageVersionDependsOn);GetVersion</GetPackageVersionDependsOn>
</PropertyGroup>
</Project>