Skip to content

Commit 140c33d

Browse files
committed
Load Lib git from files
-move over to ILMerge for normal dlls -let libgit resolve win32 dlls from the filesystem -dont ilmerge pdbs. dont think we need stack traces for external libs and makes all the packages smaller
1 parent d51fb0c commit 140c33d

File tree

4 files changed

+40
-60
lines changed

4 files changed

+40
-60
lines changed

src/GitVersionExe/FodyWeavers.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22
<Weavers VerifyAssembly="true" VerifyIgnoreCodes="0x80131869">
33
<Caseless/>
44
<JetBrainsAnnotations/>
5-
<Costura/>
65
<Visualize/>
76
</Weavers>

src/GitVersionExe/GitVersionExe.csproj

Lines changed: 35 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,6 @@
8989
</ItemGroup>
9090
<ItemGroup>
9191
<Content Include="GemAssets\.gitignore" />
92-
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.20.1.0\lib\net40\NativeBinaries\amd64\git2-91fa31f.dll">
93-
<Link>costura64\git2-91fa31f.dll</Link>
94-
</EmbeddedResource>
95-
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.20.1.0\lib\net40\NativeBinaries\x86\git2-91fa31f.dll">
96-
<Link>costura32\git2-91fa31f.dll</Link>
97-
</EmbeddedResource>
9892
<Content Include="FodyWeavers.xml">
9993
<SubType>Designer</SubType>
10094
</Content>
@@ -108,7 +102,7 @@
108102
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
109103
<Target Name="Clean">
110104
<ItemGroup>
111-
<ExeFilesToDelete Include="$(BuildDir)NuGetExeBuild\**\*.*;$(BuildDir)NuGetCommandLineBuild\**\*.*" />
105+
<ExeFilesToDelete Include="$(BuildDir)NuGetExeBuild\**\*.*;$(BuildDir)NuGetCommandLineBuild\**\*.*;$(BuildDir)GemBuild\**\*.*" />
112106
</ItemGroup>
113107
<Delete Files="@(ExeFilesToDelete)" />
114108
</Target>
@@ -132,24 +126,47 @@
132126
]]></Code>
133127
</Task>
134128
</UsingTask>
135-
<Target Name="AfterBuild" DependsOnTargets="Clean">
129+
<Target Name="AfterBuild" DependsOnTargets="Clean" Condition="$(NCrunch)==''">
130+
<MakeDir Directories="$(TargetDir)ILMergeTemp\" />
131+
<Exec Command="&quot;$(SolutionDir)tools\ilmerge.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:exe /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
132+
<ItemGroup>
133+
<TempFiles Include="$(TargetDir)ILMergeTemp\*.*" />
134+
</ItemGroup>
136135
<!-- NugetExeBuild -->
137136
<MakeDir Directories="$(BuildDir)NuGetExeBuild" />
138-
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
139-
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
137+
138+
<CreateItem Include="$(TargetDir)NativeBinaries\amd64\*.dll">
139+
<Output TaskParameter="Include" ItemName="amd64" />
140+
</CreateItem>
141+
<CreateItem Include="$(TargetDir)NativeBinaries\x86\*.dll">
142+
<Output TaskParameter="Include" ItemName="x86" />
143+
</CreateItem>
144+
145+
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)NuGetExeBuild\tools\NativeBinaries\amd64" />
146+
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)NuGetExeBuild\tools\NativeBinaries\x86" />
147+
148+
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
149+
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
140150
<Copy SourceFiles="$(ProjectDir)NugetAssets\chocolateyInstall.ps1" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
141151
<Copy SourceFiles="$(ProjectDir)NugetAssets\chocolateyUninstall.ps1" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
142152
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.Portable.nuspec" DestinationFolder="$(BuildDir)NuGetExeBuild" />
143-
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetExeBuild" MetadataAssembly="$(OutputPath)GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
153+
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetExeBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
154+
144155
<!-- NugetCommandLineBuild -->
145156
<MakeDir Directories="$(BuildDir)NuGetCommandLineBuild" />
146-
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
147-
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
157+
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools\NativeBinaries\amd64" />
158+
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools\NativeBinaries\x86" />
159+
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
160+
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
148161
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.CommandLine.nuspec" DestinationFolder="$(BuildDir)NuGetCommandLineBuild" />
149-
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
162+
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
163+
150164
<!-- Gem -->
151-
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(BuildDir)GemBuild\bin" />
152-
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(BuildDir)GemBuild\bin" />
165+
<MakeDir Directories="$(BuildDir)GemBuild" />
166+
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)GemBuild\bin\NativeBinaries\amd64" />
167+
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)GemBuild\bin\NativeBinaries\x86" />
168+
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GemBuild\bin" />
169+
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)GemBuild\bin" />
153170
<ItemGroup>
154171
<GemFiles Include="$(ProjectDir)GemAssets\bin*\**\*.*" />
155172
<GemFiles Include="$(ProjectDir)GemAssets\lib*\**\*.*" />
@@ -166,6 +183,8 @@
166183
</PropertyGroup>
167184
<ReplaceFileText InputFilename="$(BuildDir)GemBuild\gitversion.gemspec" OutputFilename="$(BuildDir)GemBuild\gitversion.gemspec" MatchExpression="\$version\$" ReplacementText="$(GemVersion)" Condition="'$(GitVersion_SemVer)' != ''" />
168185
<Exec Command="gem build gitversion.gemspec" ContinueOnError="True" WorkingDirectory="$(BuildDir)GemBuild" Condition="'$(GitVersion_SemVer)' != ''" />
186+
187+
<RemoveDir Directories="$(TargetDir)ILMergeTemp\" />
169188
</Target>
170189
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
171190
<PropertyGroup>
@@ -175,46 +194,6 @@
175194
<Error Condition="!Exists('..\packages\LibGit2Sharp.0.20.1.0\build\net40\LibGit2Sharp.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\LibGit2Sharp.0.20.1.0\build\net40\LibGit2Sharp.props'))" />
176195
<Error Condition="!Exists('..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets'))" />
177196
</Target>
178-
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory">
179-
<ParameterGroup>
180-
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" />
181-
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
182-
</ParameterGroup>
183-
<Task Evaluate="true">
184-
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" />
185-
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" />
186-
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" />
187-
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" />
188-
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" />
189-
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[
190-
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault();
191-
192-
if (config == null) return true;
193-
194-
var excludedAssemblies = new List<string>();
195-
var attribute = config.Attribute("ExcludeAssemblies");
196-
if (attribute != null)
197-
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
198-
excludedAssemblies.Add(item);
199-
var element = config.Element("ExcludeAssemblies");
200-
if (element != null)
201-
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
202-
excludedAssemblies.Add(item);
203-
204-
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
205-
206-
foreach (var item in filesToCleanup)
207-
File.Delete(item);
208-
]]></Code>
209-
</Task>
210-
</UsingTask>
211-
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget">
212-
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
213-
</Target>
214-
<PropertyGroup>
215-
<PostBuildEvent>
216-
</PostBuildEvent>
217-
</PropertyGroup>
218197
<Import Project="..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets" Condition="Exists('..\packages\PepitaPackage.1.21.4\build\PepitaPackage.targets')" />
219198
<Import Project="..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets" Condition="Exists('..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets')" />
220199
</Project>

src/GitVersionExe/packages.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Caseless.Fody" version="1.3.7" targetFramework="net40" developmentDependency="true" />
4-
<package id="Costura.Fody" version="1.3.3.0" targetFramework="net40" developmentDependency="true" />
54
<package id="Fody" version="1.29.2" targetFramework="net40" developmentDependency="true" />
65
<package id="JetBrainsAnnotations.Fody" version="1.0.4.0" targetFramework="net40" developmentDependency="true" />
76
<package id="LibGit2Sharp" version="0.20.1.0" targetFramework="net40" />

src/GitVersionTask/GitVersionTask.csproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,24 @@
100100
</Target>
101101
<Target Name="AfterBuild" DependsOnTargets="Clean" Condition="$(NCrunch)==''">
102102
<MakeDir Directories="$(TargetDir)ILMergeTemp\" />
103-
<Exec Command="&quot;$(SolutionDir)tools\ilmerge.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:library /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /internalize " />
103+
<Exec Command="&quot;$(SolutionDir)tools\ilmerge.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:library /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
104104
<ItemGroup>
105105
<TempFiles Include="$(TargetDir)ILMergeTemp\*.*" />
106106
</ItemGroup>
107107
<MakeDir Directories="$(BuildDir)NuGetTaskBuild" />
108+
108109
<CreateItem Include="$(TargetDir)NativeBinaries\amd64\*.dll">
109110
<Output TaskParameter="Include" ItemName="amd64" />
110111
</CreateItem>
111112
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)NuGetTaskBuild\NativeBinaries\amd64" />
113+
112114
<CreateItem Include="$(TargetDir)NativeBinaries\x86\*.dll">
113115
<Output TaskParameter="Include" ItemName="x86" />
114116
</CreateItem>
115117
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)NuGetTaskBuild\NativeBinaries\x86" />
118+
116119
<Copy SourceFiles="$(TargetDir)ILMergeTemp\GitVersionTask.dll" DestinationFolder="$(BuildDir)NuGetTaskBuild" />
117-
<Copy SourceFiles="$(TargetDir)ILMergeTemp\GitVersionTask.pdb" DestinationFolder="$(BuildDir)NuGetTaskBuild" />
120+
<Copy SourceFiles="$(TargetDir)GitVersionTask.pdb" DestinationFolder="$(BuildDir)NuGetTaskBuild" />
118121
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersionTask.targets" DestinationFolder="$(BuildDir)NuGetTaskBuild\Build\portable-net+sl+win+wpa+wp" />
119122
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersionTask.targets" DestinationFolder="$(BuildDir)NuGetTaskBuild\Build\dotnet" />
120123
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersionTask.nuspec" DestinationFolder="$(BuildDir)NuGetTaskBuild" />

0 commit comments

Comments
 (0)