Skip to content

Commit e843b67

Browse files
committed
Merge pull request #125 from distantcam/Costura
Added costura support
2 parents b1f9a1a + 10a0e4f commit e843b67

File tree

4 files changed

+51
-44
lines changed

4 files changed

+51
-44
lines changed

GitVersion/FodyWeavers.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Weavers>
33
<Caseless />
44
<Publicize />
55
<Fielder />
66
<Virtuosity />
77
<JetBrainsAnnotations />
8+
<Costura />
89
</Weavers>

GitVersion/GitVersion.csproj

+48-26
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,18 @@
137137
</None>
138138
</ItemGroup>
139139
<ItemGroup>
140+
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\amd64\git2-65e9dc6.dll">
141+
<Link>costura64\git2-65e9dc6.dll</Link>
142+
</EmbeddedResource>
143+
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\amd64\git2-65e9dc6.pdb">
144+
<Link>costura64\git2-65e9dc6.pdb</Link>
145+
</EmbeddedResource>
146+
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\x86\git2-65e9dc6.dll">
147+
<Link>costura32\git2-65e9dc6.dll</Link>
148+
</EmbeddedResource>
149+
<EmbeddedResource Include="..\Packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\x86\git2-65e9dc6.pdb">
150+
<Link>costura32\git2-65e9dc6.pdb</Link>
151+
</EmbeddedResource>
140152
<Content Include="FodyWeavers.xml">
141153
<SubType>Designer</SubType>
142154
</Content>
@@ -157,17 +169,8 @@
157169
<Target Name="AfterBuild" DependsOnTargets="Clean">
158170
<!-- NugetExeBuild -->
159171
<MakeDir Directories="$(SolutionDir)NuGetExeBuild" />
160-
<CreateItem Include="$(SolutionDir)GitVersion\bin\$(ConfigurationName)\NativeBinaries\amd64\*.dll">
161-
<Output TaskParameter="Include" ItemName="amd64" />
162-
</CreateItem>
163-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools\NativeBinaries\amd64" />
164-
<CreateItem Include="$(SolutionDir)GitVersion\bin\$(ConfigurationName)\NativeBinaries\x86\*.dll">
165-
<Output TaskParameter="Include" ItemName="x86" />
166-
</CreateItem>
167-
<Copy SourceFiles="@(x86)" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools\NativeBinaries\x86" />
168172
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
169173
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
170-
<Copy SourceFiles="$(OutputPath)\LibGit2Sharp.dll" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
171174
<Copy SourceFiles="$(ProjectDir)NugetExeAssets\chocolateyInstall.ps1" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
172175
<Copy SourceFiles="$(ProjectDir)NugetExeAssets\chocolateyUninstall.ps1" DestinationFolder="$(SolutionDir)NuGetExeBuild\Tools" />
173176
<Copy SourceFiles="$(ProjectDir)NugetExeAssets\GitVersion.nuspec" DestinationFolder="$(SolutionDir)NuGetExeBuild" />
@@ -182,33 +185,52 @@
182185
<!-- Gem -->
183186
<MakeDir Directories="$(SolutionDir)GemBuild" />
184187
<MakeDir Directories="$(SolutionDir)GemBuild\bin" />
185-
<CreateItem Include="$(SolutionDir)GitVersion\bin\$(ConfigurationName)\NativeBinaries\amd64\*.dll">
186-
<Output TaskParameter="Include" ItemName="amd64" />
187-
</CreateItem>
188-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(SolutionDir)GemBuild\bin\NativeBinaries\amd64" />
189-
<CreateItem Include="$(SolutionDir)GitVersion\bin\$(ConfigurationName)\NativeBinaries\x86\*.dll">
190-
<Output TaskParameter="Include" ItemName="x86" />
191-
</CreateItem>
192-
<Copy SourceFiles="@(x86)" DestinationFolder="$(SolutionDir)GemBuild\bin\NativeBinaries\x86" />
193188
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)GemBuild\bin" />
194189
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)GemBuild\bin" />
195-
<Copy SourceFiles="$(OutputPath)\LibGit2Sharp.dll" DestinationFolder="$(SolutionDir)GemBuild\bin" />
196190
<Copy SourceFiles="$(ProjectDir)GemAssets\gitversion" DestinationFolder="$(SolutionDir)GemBuild\bin" />
197191
<Copy SourceFiles="$(ProjectDir)GemAssets\gitversion.gemspec" DestinationFolder="$(SolutionDir)GemBuild" />
198192
</Target>
199-
<PropertyGroup>
200-
<PostBuildEvent>
201-
if not exist "$(TargetDir)NativeBinaries" md "$(TargetDir)NativeBinaries"
202-
if not exist "$(TargetDir)NativeBinaries\x86" md "$(TargetDir)NativeBinaries\x86"
203-
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\x86\*.*" "$(TargetDir)NativeBinaries\x86"
204-
if not exist "$(TargetDir)NativeBinaries\amd64" md "$(TargetDir)NativeBinaries\amd64"
205-
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\amd64\*.*" "$(TargetDir)NativeBinaries\amd64"</PostBuildEvent>
206-
</PropertyGroup>
207193
<Import Project="..\packages\Fody.1.22.1\build\Fody.targets" Condition="Exists('..\packages\Fody.1.22.1\build\Fody.targets')" />
208194
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
209195
<PropertyGroup>
210196
<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>
211197
</PropertyGroup>
212198
<Error Condition="!Exists('..\packages\Fody.1.22.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.1.22.1\build\Fody.targets'))" />
213199
</Target>
200+
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory">
201+
<ParameterGroup>
202+
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" />
203+
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
204+
</ParameterGroup>
205+
<Task Evaluate="true">
206+
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" />
207+
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" />
208+
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" />
209+
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" />
210+
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" />
211+
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[
212+
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault();
213+
214+
if (config == null) return true;
215+
216+
var excludedAssemblies = new List<string>();
217+
var attribute = config.Attribute("ExcludeAssemblies");
218+
if (attribute != null)
219+
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
220+
excludedAssemblies.Add(item);
221+
var element = config.Element("ExcludeAssemblies");
222+
if (element != null)
223+
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
224+
excludedAssemblies.Add(item);
225+
226+
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
227+
228+
foreach (var item in filesToCleanup)
229+
File.Delete(item);
230+
]]></Code>
231+
</Task>
232+
</UsingTask>
233+
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget">
234+
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
235+
</Target>
214236
</Project>

GitVersion/packages.config

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Caseless.Fody" version="1.3.3.0" targetFramework="net40" developmentDependency="true" />
4+
<package id="Costura.Fody" version="1.1.0.0" targetFramework="net40" developmentDependency="true" />
45
<package id="Fielder.Fody" version="1.0.7.0" targetFramework="net40" developmentDependency="true" />
56
<package id="Fody" version="1.22.1" targetFramework="net40" developmentDependency="true" />
67
<package id="JetBrainsAnnotations.Fody" version="1.0.2" targetFramework="net40" developmentDependency="true" />

GitVersionTask/GitVersionTask.csproj

-17
Original file line numberDiff line numberDiff line change
@@ -88,31 +88,14 @@
8888
<UsingTask TaskName="PepitaPackage.CreatePackageTask" AssemblyFile="$(SolutionDir)Tools\Pepita\PepitaPackage.dll" />
8989
<Target Name="AfterBuild" DependsOnTargets="Clean">
9090
<MakeDir Directories="$(SolutionDir)NuGetTaskBuild" />
91-
<CreateItem Include="$(SolutionDir)GitVersionTask\bin\$(ConfigurationName)\NativeBinaries\amd64\*.dll">
92-
<Output TaskParameter="Include" ItemName="amd64" />
93-
</CreateItem>
94-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(SolutionDir)NuGetTaskBuild\NativeBinaries\amd64" />
95-
<CreateItem Include="$(SolutionDir)GitVersionTask\bin\$(ConfigurationName)\NativeBinaries\x86\*.dll">
96-
<Output TaskParameter="Include" ItemName="x86" />
97-
</CreateItem>
98-
<Copy SourceFiles="@(x86)" DestinationFolder="$(SolutionDir)NuGetTaskBuild\NativeBinaries\x86" />
9991
<Copy SourceFiles="$(OutputPath)\GitVersionTask.dll" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
10092
<Copy SourceFiles="$(OutputPath)\GitVersionTask.pdb" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
10193
<Copy SourceFiles="$(OutputPath)\GitVersion.exe" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
10294
<Copy SourceFiles="$(OutputPath)\GitVersion.pdb" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
103-
<Copy SourceFiles="$(OutputPath)\LibGit2Sharp.dll" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
10495
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersionTask.targets" DestinationFolder="$(SolutionDir)NuGetTaskBuild\Build" />
10596
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersionTask.nuspec" DestinationFolder="$(SolutionDir)NuGetTaskBuild" />
10697
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(SolutionDir)NuGetTaskBuild" MetadataAssembly="$(OutputPath)GitVersionTask.dll" />
10798
</Target>
108-
<PropertyGroup>
109-
<PostBuildEvent>
110-
if not exist "$(TargetDir)NativeBinaries" md "$(TargetDir)NativeBinaries"
111-
if not exist "$(TargetDir)NativeBinaries\x86" md "$(TargetDir)NativeBinaries\x86"
112-
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\x86\*.*" "$(TargetDir)NativeBinaries\x86"
113-
if not exist "$(TargetDir)NativeBinaries\amd64" md "$(TargetDir)NativeBinaries\amd64"
114-
xcopy /s /y /d "$(SolutionDir)packages\LibGit2Sharp.0.16.0.0\lib\net35\NativeBinaries\amd64\*.*" "$(TargetDir)NativeBinaries\amd64"</PostBuildEvent>
115-
</PropertyGroup>
11699
<Import Project="..\packages\Fody.1.22.1\build\Fody.targets" Condition="Exists('..\packages\Fody.1.22.1\build\Fody.targets')" />
117100
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
118101
<PropertyGroup>

0 commit comments

Comments
 (0)