Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion src/GitVersionCore/GitVersionCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,39 @@
<SubType>Designer</SubType>
</None>
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="GitVersionInformationResources\AddFormats\GitVersionInformation.h" />
<EmbeddedResource Include="GitVersionInformationResources\Templates\GitVersionInformation.h" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets'))" />
<Error Condition="!Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.160\build\LibGit2Sharp.NativeBinaries.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.NativeBinaries.1.0.160\build\LibGit2Sharp.NativeBinaries.props'))" />
<Error Condition="!Exists('..\packages\Fody.2.0.8\build\portable-net+sl+win+wpa+wp\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.2.0.8\build\portable-net+sl+win+wpa+wp\Fody.targets'))" />
</Target>
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Target Name="Clean">
<ItemGroup>
<RefFilesToDelete Include="$(BuildDir)NuGetRefBuild\**\*.*" />
</ItemGroup>
<Delete Files="@(RefFilesToDelete)" />
</Target>
<Target Name="AfterBuild" DependsOnTargets="Clean">
<!-- NugetRefBuild -->
<MakeDir Directories="$(SolutionDir)NuGetRefBuild\lib\Net45" />
<Copy SourceFiles="$(OutputPath)GitVersionCore.dll" DestinationFolder="$(BuildDir)NuGetRefBuild\lib\Net45" />
<Copy SourceFiles="$(OutputPath)GitVersionCore.pdb" DestinationFolder="$(BuildDir)NuGetRefBuild\lib\Net45" Condition="Exists('$(OutputPath)GitVersionCore.pdb')" />
<Copy SourceFiles="$(OutputPath)GitVersionCore.dll.mdb" DestinationFolder="$(BuildDir)NuGetRefBuild\lib\Net45" Condition="Exists('$(OutputPath)GitVersionCore.dll.mdb')" />
<Copy SourceFiles="$(OutputPath)GitVersionCore.xml" DestinationFolder="$(BuildDir)NuGetRefBuild\lib\Net45" />
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.nuspec" DestinationFolder="$(BuildDir)NuGetRefBuild" />
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetRefBuild" MetadataAssembly="$(OutputPath)GitVersionCore.dll" Version="$(GitVersion_NuGetVersion)" />
</Target>
<Import Project="..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets" Condition="Exists('..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets')" />
<Import Project="..\packages\Fody.2.0.8\build\portable-net+sl+win+wpa+wp\Fody.targets" Condition="Exists('..\packages\Fody.2.0.8\build\portable-net+sl+win+wpa+wp\Fody.targets')" />
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define {0} {1}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// GitVersion
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

#pragma once

//------------------------------------------------------------------------------
//What the values SHOULD look like after the template is applied:
//#define VERSION_FULL MAJORVERSION,MINORVERSION,BUILDVERSION,REVISIONVERSION
//#define VERSION_STRING VERSION_XSTR(MAJORVERSION.MINORVERSION.BUILDVERSION.REVISIONVERSION-REVISIONHASH) VERSION_BLANK "\0"

//NOTE: The trailing "\0" is VERY important

//------------------------------------------------------------------------------

#define VERSION_STR(x) #x
#define VERSION_XSTR(x) VERSION_STR(x)
#define VERSION_BLANK ""

#define VERSION_FULL 0,0,0,1
#define VERSION_STRING VERSION_XSTR(0.0.0.1) VERSION_BLANK "\0"
9 changes: 5 additions & 4 deletions src/GitVersionCore/TemplateManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
using GitVersionCore.Extensions;
using System.Reflection;

enum TemplateType
public enum TemplateType
{
VersionAssemblyInfoResources,
GitVersionInformationResources
GitVersionInformationResources,
NativeHeader,
}

class TemplateManager
public class TemplateManager
{
readonly Dictionary<string, string> templates;
readonly Dictionary<string, string> addFormats;
Expand Down Expand Up @@ -89,4 +90,4 @@ static IEnumerable<string> GetEmbeddedTemplates(TemplateType templateType, strin
}
}
}
}
}
15 changes: 9 additions & 6 deletions src/GitVersionTask/GenerateGitVersionInformation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,17 @@ string GetFileExtension()
{
switch (Language)
{
case "C#":
return "cs";
case SupportedLanguageConstants.CSHARP:
return SupportedLanguageConstants.FILEEXTENSION_CSHARP;

case "F#":
return "fs";
case SupportedLanguageConstants.FSHARP:
return SupportedLanguageConstants.FILEEXTENSION_FSHARP;

case "VB":
return "vb";
case SupportedLanguageConstants.VBDOTNET:
return SupportedLanguageConstants.FILEEXTENSION_VBDOTNET;

case SupportedLanguageConstants.CPLUSPLUS:
return SupportedLanguageConstants.FILEEXTENSION_CPLUSPLUS;

default:
throw new Exception($"Unknown language detected: '{Language}'");
Expand Down
22 changes: 20 additions & 2 deletions src/GitVersionTask/GitVersionTask.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,26 @@
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>

<Reference Include="YamlDotNet, Version=3.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\YamlDotNet.3.8.0\lib\net35\YamlDotNet.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="BuildLogger.cs" />
<Compile Include="GenerateGitVersionInformation.cs" />
<Compile Include="GitVersionTaskBase.cs" />
<Compile Include="SupportedLanguageConstants.cs" />
<Compile Include="UpdateNativeVersionHeader.cs" />
<Compile Include="WriteVersionInfoToBuildLog.cs" />
<Compile Include="GetVersion.cs" />
<Compile Include="InvalidFileChecker.cs" />
<Compile Include="TaskLogger.cs" />
<Compile Include="TempFileTracker.cs" />
<Compile Include="UpdateAssemblyInfo.cs" />
<Compile Include="AssemblyInfo.cs" />
</ItemGroup>

<ItemGroup>
<None Include="app.config" />
<None Include="key.snk" />
Expand Down
172 changes: 170 additions & 2 deletions src/GitVersionTask/NugetAssets/build/GitVersionTask.targets
Original file line number Diff line number Diff line change
@@ -1,5 +1,40 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GitVersion_Task_targets_Imported>True</GitVersion_Task_targets_Imported>
</PropertyGroup>

<PropertyGroup Condition=" '$(MSBuildProjectExtension)' == '.vcxproj' ">
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == '' ">false</UpdateAssemblyInfo>
<UpdateNativeHeader Condition=" '$(UpdateNativeHeader)' == '' ">true</UpdateNativeHeader>
</PropertyGroup>

<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<GitVersionPath Condition="'$(GitVersionPath)' == '' And '$(GitVersionUseSolutionDir)' == 'true'">$(SolutionDir)</GitVersionPath>
<GitVersionPath Condition="'$(GitVersionPath)' == ''">$(MSBuildProjectDirectory)</GitVersionPath>
<GitVersionCustomizeTargetFile Condition="'$(GitVersionCustomizeTargetFile)' == '' And Exists('$(MSBuildProjectDirectory)\GitVersionTask.targets')">$(SolutionDir)\GitVersionTask.targets</GitVersionCustomizeTargetFile>
<GitVersionCustomizeTargetFile Condition="'$(GitVersionCustomizeTargetFile)' == '' And '$(SolutionDir)' != '' And Exists('$(SolutionDir)\GitVersionTask.targets')">$(SolutionDir)\GitVersionTask.targets</GitVersionCustomizeTargetFile>
<GitVersionCustomizeTargetFile Condition="'$(GitVersionCustomizeTargetFile)' == ''"></GitVersionCustomizeTargetFile>
<IntermediateOutputPath Condition="$(IntermediateOutputPath) == '' Or $(IntermediateOutputPath) == '*Undefined*'">$(MSBuildProjectDirectory)\obj\$(Configuration)\</IntermediateOutputPath>
<GitVersion_NoFetchEnabled Condition="$(GitVersion_NoFetchEnabled) == ''">false</GitVersion_NoFetchEnabled>

<!-- Property that enables WriteVersionInfoToBuildLog -->
<WriteVersionInfoToBuildLog Condition=" '$(WriteVersionInfoToBuildLog)' == '' and '$(NCrunch)' != '' ">false</WriteVersionInfoToBuildLog>
<WriteVersionInfoToBuildLog Condition=" '$(WriteVersionInfoToBuildLog)' == '' ">true</WriteVersionInfoToBuildLog>

<!-- Property that enables UpdateAssemblyInfo. Default to off for SDK builds -->
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == '' and '$(TargetFramework)' != '' ">false</UpdateAssemblyInfo>
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == '' and '$(NCrunch)' != '' ">false</UpdateAssemblyInfo>
<UpdateAssemblyInfo Condition=" '$(UpdateAssemblyInfo)' == '' ">true</UpdateAssemblyInfo>

<UpdateNativeHeader Condition=" '$(UpdateNativeHeader)' == '' ">false</UpdateNativeHeader>

<!-- Property that enables GenerateGitVersionInformation -->
<GenerateGitVersionInformation Condition=" '$(GenerateGitVersionInformation)' == '' and '$(NCrunch)' != '' ">false</GenerateGitVersionInformation>
<GenerateGitVersionInformation Condition=" '$(GenerateGitVersionInformation)' == '' ">true</GenerateGitVersionInformation>
</PropertyGroup>

<ItemGroup>
<PathSeparators Include="/"/>
<PathSeparators Include="\"/>
Expand All @@ -9,10 +44,143 @@
<GitVersionTaskBuildTools_IsMultiTargeting>false</GitVersionTaskBuildTools_IsMultiTargeting>
<GitVersionTaskBuildTools_IsMultiTargeting Condition="$(MSBuildThisFileDirectory.Substring($(MSBuildThisFileDirectory.LastIndexOfAny(@(PathSeparators)))).Substring(1).Contains('buildMultiTargeting'))">true</GitVersionTaskBuildTools_IsMultiTargeting>
</PropertyGroup>
<UsingTask
TaskName="GitVersionTask.UpdateAssemblyInfo"
AssemblyFile="$(GitVersionTaskLibrary)GitVersionTask.dll" />
<UsingTask
TaskName="GitVersionTask.UpdateNativeVersionHeader"
AssemblyFile="$(GitVersionTaskLibrary)GitVersionTask.dll" />
<UsingTask
TaskName="GitVersionTask.GenerateGitVersionInformation"
AssemblyFile="$(GitVersionTaskLibrary)GitVersionTask.dll" />
<UsingTask
TaskName="GitVersionTask.GetVersion"
AssemblyFile="$(GitVersionTaskLibrary)GitVersionTask.dll" />
<UsingTask
TaskName="GitVersionTask.WriteVersionInfoToBuildLog"
AssemblyFile="$(GitVersionTaskLibrary)GitVersionTask.dll" />

<Import Project="$(GitVersionCustomizeTargetFile)" Condition="'$(GitVersionCustomizeTargetFile)' != '' and Exists('$(GitVersionCustomizeTargetFile)')" />

<Target Name="WriteVersionInfoToBuildLog" BeforeTargets="CoreCompile;GetAssemblyVersion;GenerateNuspec" Condition="$(WriteVersionInfoToBuildLog) == 'true'">
<WriteVersionInfoToBuildLog SolutionDirectory="$(GitVersionPath)" NoFetch="$(GitVersion_NoFetchEnabled)"/>
</Target>

<Target Name="UpdateAssemblyInfo" BeforeTargets="CoreCompile" Condition="$(UpdateAssemblyInfo) == 'true'">
<UpdateAssemblyInfo
SolutionDirectory="$(GitVersionPath)"
NoFetch="$(GitVersion_NoFetchEnabled)"
ProjectFile="$(MSBuildProjectFullPath)"
IntermediateOutputPath="$(IntermediateOutputPath)"
Language="$(Language)"
CompileFiles ="@(Compile)">
<Output
TaskParameter="AssemblyInfoTempFilePath"
PropertyName="AssemblyInfoTempFilePath" />
</UpdateAssemblyInfo>

<ItemGroup>
<Compile Include="$(AssemblyInfoTempFilePath)" />
</ItemGroup>
</Target>

<Target Name="UpdateNativeHeader" BeforeTargets="CoreCompile;ClCompile" Condition="$(UpdateNativeHeader) == 'true'">
<UpdateNativeVersionHeader
SolutionDirectory="$(GitVersionPath)"
NoFetch="$(GitVersion_NoFetchEnabled)"
ProjectFile="$(MSBuildProjectFullPath)"
IntermediateOutputPath="$(ProjectDir)"
Language="$(Language)"
CompileFiles ="@(Compile)">
<Output
TaskParameter="HeaderTempFilePath"
PropertyName="HeaderTempFilePath" />
</UpdateNativeVersionHeader>

<ItemGroup>
<Compile Include="$(AssemblyInfoTempFilePath)" />
</ItemGroup>
</Target>

<Target Name="GenerateGitVersionInformation" BeforeTargets="CoreCompile;ClCompile" Condition="$(GenerateGitVersionInformation) == 'true'">
<GenerateGitVersionInformation
SolutionDirectory="$(GitVersionPath)"
NoFetch="$(GitVersion_NoFetchEnabled)"
ProjectFile="$(MSBuildProjectFullPath)"
IntermediateOutputPath="$(IntermediateOutputPath)"
Language="$(Language)">
<Output
TaskParameter="GitVersionInformationFilePath"
PropertyName="GitVersionInformationFilePath" />
</GenerateGitVersionInformation>

<ItemGroup>
<Compile Include="$(GitVersionInformationFilePath)" />
<FileWrites Include="$(GitVersionInformationFilePath)" />
</ItemGroup>
</Target>

<Target Name="GetVersion" BeforeTargets="ClCompile;CoreCompile;GetAssemblyVersion;GenerateNuspec;_GenerateRestoreProjectSpec;EnsureWixToolsetInstalled;UpdateNativeHeader" Condition="$(GetVersion) == 'true'">

<GetVersion SolutionDirectory="$(GitVersionPath)" NoFetch="$(GitVersion_NoFetchEnabled)">
<Output TaskParameter="Major" PropertyName="GitVersion_Major" />
<Output TaskParameter="Minor" PropertyName="GitVersion_Minor" />
<Output TaskParameter="Patch" PropertyName="GitVersion_Patch" />
<Output TaskParameter="PreReleaseTag" PropertyName="GitVersion_PreReleaseTag" />
<Output TaskParameter="PreReleaseTagWithDash" PropertyName="GitVersion_PreReleaseTagWithDash" />
<Output TaskParameter="PreReleaseLabel" PropertyName="GitVersion_PreReleaseLabel" />
<Output TaskParameter="PreReleaseNumber" PropertyName="GitVersion_PreReleaseNumber" />
<Output TaskParameter="BuildMetaData" PropertyName="GitVersion_BuildMetaData" />
<Output TaskParameter="BuildMetaDataPadded" PropertyName="GitVersion_BuildMetaDataPadded" />
<Output TaskParameter="FullBuildMetaData" PropertyName="GitVersion_FullBuildMetaData" />
<Output TaskParameter="MajorMinorPatch" PropertyName="GitVersion_MajorMinorPatch" />
<Output TaskParameter="SemVer" PropertyName="GitVersion_SemVer" />
<Output TaskParameter="LegacySemVer" PropertyName="GitVersion_LegacySemVer" />
<Output TaskParameter="LegacySemVerPadded" PropertyName="GitVersion_LegacySemVerPadded" />
<Output TaskParameter="AssemblySemVer" PropertyName="GitVersion_AssemblySemVer" />
<Output TaskParameter="AssemblySemFileVer" PropertyName="GitVersion_AssemblySemFileVer" />
<Output TaskParameter="FullSemVer" PropertyName="GitVersion_FullSemVer" />
<Output TaskParameter="InformationalVersion" PropertyName="GitVersion_InformationalVersion" />
<Output TaskParameter="BranchName" PropertyName="GitVersion_BranchName" />
<Output TaskParameter="Sha" PropertyName="GitVersion_Sha" />
<Output TaskParameter="NuGetVersionV2" PropertyName="GitVersion_NuGetVersionV2" />
<Output TaskParameter="NuGetVersion" PropertyName="GitVersion_NuGetVersion" />
<Output TaskParameter="NuGetPreReleaseTagV2" PropertyName="GitVersion_NuGetPreReleaseTagV2" />
<Output TaskParameter="NuGetPreReleaseTag" PropertyName="GitVersion_NuGetPreReleaseTag" />
<Output TaskParameter="CommitDate" PropertyName="GitVersion_CommitDate" />
<Output TaskParameter="CommitsSinceVersionSource" PropertyName="GitVersion_CommitsSinceVersionSource" />
<Output TaskParameter="CommitsSinceVersionSourcePadded" PropertyName="GitVersion_CommitsSinceVersionSourcePadded" />
</GetVersion>

<PropertyGroup Condition=" '$(UpdateVersionProperties)' == 'true' ">
<Version>$(GitVersion_FullSemVer)</Version>
<VersionPrefix>$(GitVersion_MajorMinorPatch)</VersionPrefix>
<VersionSuffix Condition=" '$(UseFullSemVerForNuGet)' == 'false' ">$(GitVersion_NuGetPreReleaseTag)</VersionSuffix>
<VersionSuffix Condition=" '$(UseFullSemVerForNuGet)' == 'true' ">$(GitVersion_PreReleaseTag)</VersionSuffix>
<PackageVersion Condition=" '$(UseFullSemVerForNuGet)' == 'false' ">$(GitVersion_NuGetVersion)</PackageVersion>
<PackageVersion Condition=" '$(UseFullSemVerForNuGet)' == 'true' ">$(GitVersion_FullSemVer)</PackageVersion>
<InformationalVersion Condition=" '$(InformationalVersion)' == '' ">$(GitVersion_InformationalVersion)</InformationalVersion>
<AssemblyVersion Condition=" '$(AssemblyVersion)' == '' ">$(GitVersion_AssemblySemVer)</AssemblyVersion>
<FileVersion Condition=" '$(FileVersion)' == '' ">$(GitVersion_AssemblySemFileVer)</FileVersion>
</PropertyGroup>

</Target>

<!--Support for ncrunch-->
<ItemGroup Condition=" $(NCrunch) != '' ">
<None Include="$(GitVersionTaskDir)GitVersionTask.dll">
<Visible>False</Visible>
</None>
<None Include="$(GitVersionTaskDir)GitVersionTask.pdb">
<Visible>False</Visible>
</None>
<None Include="$(GitVersionTaskDir)NativeBinaries\**\*">
<Visible>False</Visible>
</None>
</ItemGroup>

<!-- Import infrastructure props for util pack. -->
<ImportGroup>
<Import Project="$(MSBuildThisFileDirectory)..\build\Infrastructure.props"/>
</ImportGroup>

</Project>
31 changes: 31 additions & 0 deletions src/GitVersionTask/SupportedLanguageConstants.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
namespace GitVersionTask
{
internal static class SupportedLanguageConstants
{
internal const string VBDOTNET = "VB";
internal const string FSHARP = "F#";
internal const string CSHARP = "C#";
internal const string CPLUSPLUS = "C++";

internal static readonly string[] SUPPORTED_LANGUAGES =
{
VBDOTNET,
CSHARP,
FSHARP,
CPLUSPLUS,
};

internal const string FILEEXTENSION_VBDOTNET = "vb";
internal const string FILEEXTENSION_CSHARP = "cs";
internal const string FILEEXTENSION_FSHARP = "fs";
internal const string FILEEXTENSION_CPLUSPLUS = "h";

internal static readonly string[] SUPPORTED_LANGUAGE_FILEEXTENSIONS =
{
FILEEXTENSION_VBDOTNET,
FILEEXTENSION_CSHARP,
FILEEXTENSION_FSHARP,
FILEEXTENSION_CPLUSPLUS,
};
}
}
12 changes: 6 additions & 6 deletions src/GitVersionTask/UpdateAssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,14 @@ string GetFileExtension()
{
switch(Language)
{
case "C#":
return "cs";
case SupportedLanguageConstants.CSHARP:
return SupportedLanguageConstants.FILEEXTENSION_CSHARP;

case "F#":
return "fs";
case SupportedLanguageConstants.FSHARP:
return SupportedLanguageConstants.FILEEXTENSION_FSHARP;

case "VB":
return "vb";
case SupportedLanguageConstants.VBDOTNET:
return SupportedLanguageConstants.FILEEXTENSION_VBDOTNET;

default:
throw new Exception($"Unknown language detected: '{Language}'");
Expand Down
Loading