Skip to content

Commit 3a0ee55

Browse files
bordingnulltoken
authored andcommitted
Use NativeBinaries package for libgit2 dependency
closes #974, closes #984
1 parent 63f8d6d commit 3a0ee55

25 files changed

+89
-1234
lines changed

Diff for: .gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ _ReSharper*/
3737
*.DotSettings
3838
#Ignore custom generated files
3939
LibGit2Sharp/Core/UniqueIdentifier.cs
40+
LibGit2Sharp/Core/NativeDllName.cs
4041

41-
!Lib/NativeBinaries/*/*.pdb
4242
!nuget.package/build/
4343
_NCrunch_LibGit2Sharp/
4444
packages/

Diff for: .gitmodules

-3
This file was deleted.

Diff for: CI/build.msbuild

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
</Target>
3838

3939
<Target Name="Test" DependsOnTargets="Build">
40-
<xunit Assembly="$(TestBuildDir)/LibGit2Sharp.Tests.dll" Xml="$(DeployFolder)/Test-result.xml" />
40+
<xunit Assembly="$(TestBuildDir)/LibGit2Sharp.Tests.dll" ShadowCopy="false" Xml="$(DeployFolder)/Test-result.xml" />
4141
</Target>
4242

4343
<Target Name="Deploy" DependsOnTargets="Test">

Diff for: Lib/CustomBuildTasks/CustomBuildTasks.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
</ItemGroup>
3838
<ItemGroup>
3939
<Compile Include="GenerateUniqueIdentifierTask.cs" />
40+
<Compile Include="GenerateNativeDllNameTask.cs" />
4041
</ItemGroup>
4142
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
4243
</Project>

Diff for: Lib/CustomBuildTasks/CustomBuildTasks.dll

1 KB
Binary file not shown.

Diff for: Lib/CustomBuildTasks/GenerateNativeDllNameTask.cs

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using System.IO;
3+
using Microsoft.Build.Framework;
4+
using Microsoft.Build.Utilities;
5+
6+
namespace CustomBuildTasks
7+
{
8+
public class GenerateNativeDllNameTask : Task
9+
{
10+
public ITaskItem InputHashFile { get; set; }
11+
12+
public string OutputFile { get; set; }
13+
14+
public override bool Execute()
15+
{
16+
var fileName = InputHashFile.GetMetadata("FullPath");
17+
string hash;
18+
19+
using (var sr = new StreamReader(fileName))
20+
{
21+
hash = sr.ReadLine();
22+
}
23+
24+
var shortHash = hash.Substring(0, 7);
25+
26+
var nativeDllName = @"namespace LibGit2Sharp.Core
27+
{{
28+
internal static class NativeDllName
29+
{{
30+
public const string Name = ""git2-{0}"";
31+
}}
32+
}}
33+
";
34+
35+
using (var sw = new StreamWriter(OutputFile))
36+
{
37+
sw.Write(nativeDllName, shortHash);
38+
}
39+
40+
return true;
41+
}
42+
}
43+
}

Diff for: Lib/NativeBinaries/amd64/git2-9bbc8f3.dll

-1010 KB
Binary file not shown.

Diff for: Lib/NativeBinaries/amd64/git2-9bbc8f3.pdb

-5.54 MB
Binary file not shown.

Diff for: Lib/NativeBinaries/libgit2.license.txt

-930
This file was deleted.

Diff for: Lib/NativeBinaries/x86/git2-9bbc8f3.dll

-757 KB
Binary file not shown.

Diff for: Lib/NativeBinaries/x86/git2-9bbc8f3.pdb

-5.54 MB
Binary file not shown.

Diff for: LibGit2Sharp.Tests/LibGit2Sharp.Tests.csproj

-4
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,6 @@
139139
<None Include="packages.config" />
140140
</ItemGroup>
141141
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
142-
<PropertyGroup>
143-
<NativeBinariesDirectory>$(MSBuildProjectDirectory)\..\Lib\NativeBinaries</NativeBinariesDirectory>
144-
</PropertyGroup>
145-
<Import Project="..\LibGit2Sharp\CopyWindowsNativeDependencies.targets" />
146142
<Import Project="..\LibGit2Sharp\ExtraDefine.targets" />
147143
<Import Project="VisualStudio.Tests.targets" />
148144
<PropertyGroup>

Diff for: LibGit2Sharp/CopyWindowsNativeDependencies.targets

-13
This file was deleted.

Diff for: LibGit2Sharp/Core/NativeDllName.cs

-7
This file was deleted.

Diff for: LibGit2Sharp/LibGit2Sharp.csproj

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\packages\LibGit2Sharp.NativeBinaries.1.0.25\build\LibGit2Sharp.NativeBinaries.props" Condition="Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.25\build\LibGit2Sharp.NativeBinaries.props')" />
34
<PropertyGroup>
45
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
56
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -357,22 +358,25 @@
357358
<CodeAnalysisDictionary Include="CustomDictionary.xml" />
358359
</ItemGroup>
359360
<ItemGroup>
360-
<EmbeddedResource Include="libgit2_hash.txt" />
361+
<EmbeddedResource Include="libgit2sharp_hash.txt" />
361362
</ItemGroup>
362363
<ItemGroup>
363-
<EmbeddedResource Include="libgit2sharp_hash.txt" />
364+
<None Include="packages.config" />
364365
</ItemGroup>
365366
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
366367
<Import Project="UniqueIdentifier.targets" />
367-
<PropertyGroup>
368-
<NativeBinariesDirectory>$(MSBuildProjectDirectory)\..\Lib\NativeBinaries</NativeBinariesDirectory>
369-
</PropertyGroup>
370-
<Import Project="CopyWindowsNativeDependencies.targets" />
368+
<Import Project="NativeDllName.targets" />
371369
<Import Project="ExtraDefine.targets" />
372370
<PropertyGroup>
373371
<PreBuildEvent>
374372
</PreBuildEvent>
375373
</PropertyGroup>
374+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
375+
<PropertyGroup>
376+
<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>
377+
</PropertyGroup>
378+
<Error Condition="!Exists('..\packages\LibGit2Sharp.NativeBinaries.1.0.25\build\LibGit2Sharp.NativeBinaries.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.NativeBinaries.1.0.25\build\LibGit2Sharp.NativeBinaries.props'))" />
379+
</Target>
376380
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
377381
Other similar extension points exist, see Microsoft.Common.targets.
378382
<Target Name="BeforeBuild">

Diff for: LibGit2Sharp/LibGit2Sharp.v2.ncrunchproject

-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@
2222
<UseCPUArchitecture>AutoDetect</UseCPUArchitecture>
2323
<MSTestThreadApartmentState>STA</MSTestThreadApartmentState>
2424
<BuildProcessArchitecture>x86</BuildProcessArchitecture>
25-
<AdditionalFilesToInclude>..\Lib\NativeBinaries\**.*</AdditionalFilesToInclude>
2625
</ProjectConfiguration>

Diff for: LibGit2Sharp/NativeDllName.targets

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
4+
<UsingTask TaskName="GenerateNativeDllNameTask" AssemblyFile="..\Lib\CustomBuildTasks\CustomBuildTasks.dll" />
5+
6+
<PropertyGroup>
7+
<LibGit2SharpPath Condition="'$(MSBuildThisFileDirectory)' == ''">.</LibGit2SharpPath>
8+
<LibGit2SharpPath Condition="'$(MSBuildThisFileDirectory)' != ''">$(MSBuildThisFileDirectory)</LibGit2SharpPath>
9+
<NativeDllNamePath>$(LibGit2SharpPath)\Core\NativeDllName.cs</NativeDllNamePath>
10+
<CoreCompileDependsOn>$(CoreCompileDependsOn);GenerateNativeDllNameCs</CoreCompileDependsOn>
11+
<CoreCleanDependsOn>$(CoreCleanDependsOn);CleanNativeDllNameCs</CoreCleanDependsOn>
12+
</PropertyGroup>
13+
14+
<Target Name="GenerateNativeDllNameCs"
15+
Inputs="@(EmbeddedResource)"
16+
Outputs="$(NativeDllNamePath)">
17+
<GenerateNativeDllNameTask InputHashFile="@(EmbeddedResource)" Condition=" '%(Filename)%(Extension)' == 'libgit2_hash.txt' " OutputFile="$(NativeDllNamePath)" />
18+
</Target>
19+
20+
<Target Name="CleanNativeDllNameCs">
21+
<Delete Files="$(NativeDllNamePath)" />
22+
</Target>
23+
</Project>

Diff for: LibGit2Sharp/libgit2_hash.txt

-1
This file was deleted.

Diff for: LibGit2Sharp/packages.config

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="LibGit2Sharp.NativeBinaries" version="1.0.25" targetFramework="net40" allowedVersions="[1.0.25]" />
4+
</packages>

Diff for: UpdateLibgit2ToSha.ps1

-212
This file was deleted.

0 commit comments

Comments
 (0)