Skip to content

Commit

Permalink
added multiTargeting support
Browse files Browse the repository at this point in the history
  • Loading branch information
arturcic committed Apr 18, 2019
1 parent 71a9808 commit cea4d12
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 33 deletions.
9 changes: 5 additions & 4 deletions src/GitVersion.MsBuild/GitVersion.MsBuild.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
</metadata>
<files>
<!--
List platforms explicitly. If a new platform is supported by libgit2 update RuntimeIdMap method to handle it.
-->
List platforms explicitly. If a new platform is supported by libgit2 update RuntimeIdMap method to handle it.
-->
<file src="netcoreapp2.1\publish\runtimes\**\*.so" target="tools\netstandard2.0\runtimes" />
<file src="netcoreapp2.1\publish\runtimes\**\*.dylib" target="tools\netstandard2.0\runtimes" />
<file src="netcoreapp2.1\publish\runtimes\win-x86\native\*.dll" target="tools\netstandard2.0\runtimes\win-x86\native" />
Expand All @@ -38,7 +38,8 @@
<file src="net461\lib\osx\*.dylib" target="tools\net461\lib\osx" />
<file src="net461\lib\win32\**\*.dll" target="tools\net461\lib\win32" />

<file src="..\..\build\GitVersion.MsBuild.props" target="build" />
<file src="..\..\build\GitVersion.MsBuild.targets" target="build" />
<file src="..\..\build\*.*" target="build" />
<file src="..\..\buildMultiTargeting\*.*" target="buildMultiTargeting" />

</files>
</package>
22 changes: 20 additions & 2 deletions src/GitVersion.MsBuild/GitVersionTasks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public static bool GenerateGitVersionInformation(GenerateGitVersionInformation t
{
if (!GetVersionVariables(task, out var versionVariables)) return;
var fileExtension = TaskUtils.GetFileExtension(task.Language);
var fileExtension = GetFileExtension(task.Language);
var fileName = $"GitVersionInformation.g.{fileExtension}";
if (task.IntermediateOutputPath == null)
Expand All @@ -63,7 +63,7 @@ public static bool UpdateAssemblyInfo(UpdateAssemblyInfo task)
if (!GetVersionVariables(task, out var versionVariables)) return;
var fileExtension = TaskUtils.GetFileExtension(task.Language);
var fileExtension = GetFileExtension(task.Language);
var assemblyInfoFileName = $"GitVersionTaskAssemblyInfo.g.{fileExtension}";
if (task.IntermediateOutputPath == null)
Expand Down Expand Up @@ -133,5 +133,23 @@ private static bool Execute<T>(T task, Action<T> action)

private static bool GetVersionVariables(GitVersionTaskBase task, out VersionVariables versionVariables)
=> ExecuteCore.TryGetVersion(task.SolutionDirectory, out versionVariables, task.NoFetch, new Authentication());

private static string GetFileExtension(string language)
{
switch(language)
{
case "C#":
return "cs";

case "F#":
return "fs";

case "VB":
return "vb";

default:
throw new Exception($"Unknown language detected: '{language}'");
}
}
}
}
25 changes: 0 additions & 25 deletions src/GitVersion.MsBuild/TaskUtils.cs

This file was deleted.

2 changes: 0 additions & 2 deletions src/GitVersion.MsBuild/build/GitVersion.MsBuild.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@
<GitVersionPath Condition="'$(GitVersionPath)' == ''">$(MSBuildProjectDirectory)</GitVersionPath>

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

<!-- Property that enables 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)' == '' ">true</UpdateAssemblyInfo>

<!-- Property that enables GenerateGitVersionInformation -->
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Import Project="$(MSBuildThisFileDirectory)..\build\$(MSBuildThisFile)"/>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<UsingTask TaskName="GetVersion" AssemblyFile="$(GitVersionAssemblyFile)"/>
<UsingTask TaskName="WriteVersionInfoToBuildLog" AssemblyFile="$(GitVersionAssemblyFile)" />

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

<Target Name="UpdateAssemblyInfo" DependsOnTargets="_UpdateAssemblyInfo;DispatchToInnerBuilds" />
<Target Name="_UpdateAssemblyInfo">
<PropertyGroup>
<InnerTargets>UpdateAssemblyInfo</InnerTargets>
</PropertyGroup>
</Target>

<Target Name="GenerateGitVersionInformation" DependsOnTargets="_GenerateGitVersionInformation;DispatchToInnerBuilds" />
<Target Name="_GenerateGitVersionInformation">
<PropertyGroup>
<InnerTargets>GenerateGitVersionInformation</InnerTargets>
</PropertyGroup>
</Target>

<Target Name="GetVersion" BeforeTargets="CoreCompile;GetAssemblyVersion;GenerateNuspec;_GenerateRestoreProjectSpec;EnsureWixToolsetInstalled" 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>

</Project>

0 comments on commit cea4d12

Please sign in to comment.