Skip to content

Commit cea4d12

Browse files
committed
added multiTargeting support
1 parent 71a9808 commit cea4d12

File tree

6 files changed

+97
-33
lines changed

6 files changed

+97
-33
lines changed

src/GitVersion.MsBuild/GitVersion.MsBuild.nuspec

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
</metadata>
1919
<files>
2020
<!--
21-
List platforms explicitly. If a new platform is supported by libgit2 update RuntimeIdMap method to handle it.
22-
-->
21+
List platforms explicitly. If a new platform is supported by libgit2 update RuntimeIdMap method to handle it.
22+
-->
2323
<file src="netcoreapp2.1\publish\runtimes\**\*.so" target="tools\netstandard2.0\runtimes" />
2424
<file src="netcoreapp2.1\publish\runtimes\**\*.dylib" target="tools\netstandard2.0\runtimes" />
2525
<file src="netcoreapp2.1\publish\runtimes\win-x86\native\*.dll" target="tools\netstandard2.0\runtimes\win-x86\native" />
@@ -38,7 +38,8 @@
3838
<file src="net461\lib\osx\*.dylib" target="tools\net461\lib\osx" />
3939
<file src="net461\lib\win32\**\*.dll" target="tools\net461\lib\win32" />
4040

41-
<file src="..\..\build\GitVersion.MsBuild.props" target="build" />
42-
<file src="..\..\build\GitVersion.MsBuild.targets" target="build" />
41+
<file src="..\..\build\*.*" target="build" />
42+
<file src="..\..\buildMultiTargeting\*.*" target="buildMultiTargeting" />
43+
4344
</files>
4445
</package>

src/GitVersion.MsBuild/GitVersionTasks.cs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static bool GenerateGitVersionInformation(GenerateGitVersionInformation t
3737
{
3838
if (!GetVersionVariables(task, out var versionVariables)) return;
3939

40-
var fileExtension = TaskUtils.GetFileExtension(task.Language);
40+
var fileExtension = GetFileExtension(task.Language);
4141
var fileName = $"GitVersionInformation.g.{fileExtension}";
4242

4343
if (task.IntermediateOutputPath == null)
@@ -63,7 +63,7 @@ public static bool UpdateAssemblyInfo(UpdateAssemblyInfo task)
6363

6464
if (!GetVersionVariables(task, out var versionVariables)) return;
6565

66-
var fileExtension = TaskUtils.GetFileExtension(task.Language);
66+
var fileExtension = GetFileExtension(task.Language);
6767
var assemblyInfoFileName = $"GitVersionTaskAssemblyInfo.g.{fileExtension}";
6868

6969
if (task.IntermediateOutputPath == null)
@@ -133,5 +133,23 @@ private static bool Execute<T>(T task, Action<T> action)
133133

134134
private static bool GetVersionVariables(GitVersionTaskBase task, out VersionVariables versionVariables)
135135
=> ExecuteCore.TryGetVersion(task.SolutionDirectory, out versionVariables, task.NoFetch, new Authentication());
136+
137+
private static string GetFileExtension(string language)
138+
{
139+
switch(language)
140+
{
141+
case "C#":
142+
return "cs";
143+
144+
case "F#":
145+
return "fs";
146+
147+
case "VB":
148+
return "vb";
149+
150+
default:
151+
throw new Exception($"Unknown language detected: '{language}'");
152+
}
153+
}
136154
}
137155
}

src/GitVersion.MsBuild/TaskUtils.cs

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/GitVersion.MsBuild/build/GitVersion.MsBuild.props

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@
99
<GitVersionPath Condition="'$(GitVersionPath)' == ''">$(MSBuildProjectDirectory)</GitVersionPath>
1010

1111
<GitVersion_NoFetchEnabled Condition="$(GitVersion_NoFetchEnabled) == ''">false</GitVersion_NoFetchEnabled>
12-
<IntermediateOutputPath Condition="$(IntermediateOutputPath) == '' Or $(IntermediateOutputPath) == '*Undefined*'">$(MSBuildProjectDirectory)\obj\$(Configuration)\</IntermediateOutputPath>
1312

1413
<!-- Property that enables WriteVersionInfoToBuildLog -->
1514
<WriteVersionInfoToBuildLog Condition=" '$(WriteVersionInfoToBuildLog)' == '' ">true</WriteVersionInfoToBuildLog>
1615

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

2119
<!-- Property that enables GenerateGitVersionInformation -->
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project>
3+
<Import Project="$(MSBuildThisFileDirectory)..\build\$(MSBuildThisFile)"/>
4+
</Project>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project>
3+
<UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)"/>
4+
<UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" />
5+
6+
<Target Name="WriteVersionInfoToBuildLog" BeforeTargets="CoreCompile;GetAssemblyVersion;GenerateNuspec" Condition="$(WriteVersionInfoToBuildLog) == 'true'">
7+
<WriteVersionInfoToBuildLog SolutionDirectory="$(GitVersionPath)" NoFetch="$(GitVersion_NoFetchEnabled)"/>
8+
</Target>
9+
10+
<Target Name="UpdateAssemblyInfo" DependsOnTargets="_UpdateAssemblyInfo;DispatchToInnerBuilds" />
11+
<Target Name="_UpdateAssemblyInfo">
12+
<PropertyGroup>
13+
<InnerTargets>UpdateAssemblyInfo</InnerTargets>
14+
</PropertyGroup>
15+
</Target>
16+
17+
<Target Name="GenerateGitVersionInformation" DependsOnTargets="_GenerateGitVersionInformation;DispatchToInnerBuilds" />
18+
<Target Name="_GenerateGitVersionInformation">
19+
<PropertyGroup>
20+
<InnerTargets>GenerateGitVersionInformation</InnerTargets>
21+
</PropertyGroup>
22+
</Target>
23+
24+
<Target Name="GetVersion" BeforeTargets="CoreCompile;GetAssemblyVersion;GenerateNuspec;_GenerateRestoreProjectSpec;EnsureWixToolsetInstalled" Condition="$(GetVersion) == 'true'">
25+
<GetVersion SolutionDirectory="$(GitVersionPath)" NoFetch="$(GitVersion_NoFetchEnabled)">
26+
<Output TaskParameter="Major" PropertyName="GitVersion_Major" />
27+
<Output TaskParameter="Minor" PropertyName="GitVersion_Minor" />
28+
<Output TaskParameter="Patch" PropertyName="GitVersion_Patch" />
29+
<Output TaskParameter="PreReleaseTag" PropertyName="GitVersion_PreReleaseTag" />
30+
<Output TaskParameter="PreReleaseTagWithDash" PropertyName="GitVersion_PreReleaseTagWithDash" />
31+
<Output TaskParameter="PreReleaseLabel" PropertyName="GitVersion_PreReleaseLabel" />
32+
<Output TaskParameter="PreReleaseNumber" PropertyName="GitVersion_PreReleaseNumber" />
33+
<Output TaskParameter="BuildMetaData" PropertyName="GitVersion_BuildMetaData" />
34+
<Output TaskParameter="BuildMetaDataPadded" PropertyName="GitVersion_BuildMetaDataPadded" />
35+
<Output TaskParameter="FullBuildMetaData" PropertyName="GitVersion_FullBuildMetaData" />
36+
<Output TaskParameter="MajorMinorPatch" PropertyName="GitVersion_MajorMinorPatch" />
37+
<Output TaskParameter="SemVer" PropertyName="GitVersion_SemVer" />
38+
<Output TaskParameter="LegacySemVer" PropertyName="GitVersion_LegacySemVer" />
39+
<Output TaskParameter="LegacySemVerPadded" PropertyName="GitVersion_LegacySemVerPadded" />
40+
<Output TaskParameter="AssemblySemVer" PropertyName="GitVersion_AssemblySemVer" />
41+
<Output TaskParameter="AssemblySemFileVer" PropertyName="GitVersion_AssemblySemFileVer" />
42+
<Output TaskParameter="FullSemVer" PropertyName="GitVersion_FullSemVer" />
43+
<Output TaskParameter="InformationalVersion" PropertyName="GitVersion_InformationalVersion" />
44+
<Output TaskParameter="BranchName" PropertyName="GitVersion_BranchName" />
45+
<Output TaskParameter="Sha" PropertyName="GitVersion_Sha" />
46+
<Output TaskParameter="NuGetVersionV2" PropertyName="GitVersion_NuGetVersionV2" />
47+
<Output TaskParameter="NuGetVersion" PropertyName="GitVersion_NuGetVersion" />
48+
<Output TaskParameter="NuGetPreReleaseTagV2" PropertyName="GitVersion_NuGetPreReleaseTagV2" />
49+
<Output TaskParameter="NuGetPreReleaseTag" PropertyName="GitVersion_NuGetPreReleaseTag" />
50+
<Output TaskParameter="CommitDate" PropertyName="GitVersion_CommitDate" />
51+
<Output TaskParameter="CommitsSinceVersionSource" PropertyName="GitVersion_CommitsSinceVersionSource" />
52+
<Output TaskParameter="CommitsSinceVersionSourcePadded" PropertyName="GitVersion_CommitsSinceVersionSourcePadded" />
53+
</GetVersion>
54+
55+
<PropertyGroup Condition=" '$(UpdateVersionProperties)' == 'true' ">
56+
<Version>$(GitVersion_FullSemVer)</Version>
57+
<VersionPrefix>$(GitVersion_MajorMinorPatch)</VersionPrefix>
58+
<VersionSuffix Condition=" '$(UseFullSemVerForNuGet)' == 'false' ">$(GitVersion_NuGetPreReleaseTag)</VersionSuffix>
59+
<VersionSuffix Condition=" '$(UseFullSemVerForNuGet)' == 'true' ">$(GitVersion_PreReleaseTag)</VersionSuffix>
60+
<PackageVersion Condition=" '$(UseFullSemVerForNuGet)' == 'false' ">$(GitVersion_NuGetVersion)</PackageVersion>
61+
<PackageVersion Condition=" '$(UseFullSemVerForNuGet)' == 'true' ">$(GitVersion_FullSemVer)</PackageVersion>
62+
<InformationalVersion Condition=" '$(InformationalVersion)' == '' ">$(GitVersion_InformationalVersion)</InformationalVersion>
63+
<AssemblyVersion Condition=" '$(AssemblyVersion)' == '' ">$(GitVersion_AssemblySemVer)</AssemblyVersion>
64+
<FileVersion Condition=" '$(FileVersion)' == '' ">$(GitVersion_AssemblySemFileVer)</FileVersion>
65+
</PropertyGroup>
66+
</Target>
67+
68+
</Project>

0 commit comments

Comments
 (0)