-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathbuild.proj
More file actions
131 lines (121 loc) · 5.46 KB
/
Copy pathbuild.proj
File metadata and controls
131 lines (121 loc) · 5.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Package">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<PackageDir>$(MSBuildThisFileDirectory)build\publish\</PackageDir>
<BuildProperties>Configuration=$(Configuration);OfficialBuild=true;ContinuousIntegrationBuild=true;FinalVersionKind=release</BuildProperties>
</PropertyGroup>
<ItemGroup>
<Project Include="src\foo_scrobble.sln"/>
</ItemGroup>
<Import Project="eng\common\GetVersionInfo.targets"/>
<UsingTask TaskName="Zip" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
<Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.IO.Compression" />
<Using Namespace="System.IO.Compression" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
string outputFile = Path.GetFullPath(OutputFilename);
Directory.CreateDirectory(Path.GetDirectoryName(outputFile));
using (var zipStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
using (var archive = new ZipArchive(zipStream, ZipArchiveMode.Create)) {
foreach (ITaskItem fileItem in Files) {
string filename = fileItem.ItemSpec;
string entryName = fileItem.GetMetadata("Name");
if (string.IsNullOrEmpty(entryName))
entryName = new FileInfo(filename).Name;
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
using (var entryStream = archive.CreateEntry(entryName).Open())
fileStream.CopyTo(entryStream);
}
}
return true;
} catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
<Target Name="Clean32" Condition="'$(Clean)'!='false'">
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x86"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Clean"/>
<RemoveDir Directories="build\x86"/>
</Target>
<Target Name="Clean64" Condition="'$(Clean)'!='false'">
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x64"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Clean"/>
<RemoveDir Directories="build\x64"/>
</Target>
<Target Name="Clean" DependsOnTargets="Clean32;Clean64" Condition="'$(Clean)'!='false'">
</Target>
<Target Name="Restore" Condition="'$(Restore)'!='false'">
<PropertyGroup>
<NuGetExecutable Condition="'$(NuGetExecutable)'==''">nuget.exe</NuGetExecutable>
<NuGetPackagesDirectory>$(MSBuildThisFileDirectory)src\packages\</NuGetPackagesDirectory>
</PropertyGroup>
<ItemGroup>
<NuGetRestoreTarget Include="@(Project)"/>
</ItemGroup>
<Exec Condition="'@(NuGetRestoreTarget)'!=''"
Command=""$(NuGetExecutable)" restore -NonInteractive -PackagesDirectory "$(NuGetPackagesDirectory)\" "%(NuGetRestoreTarget.Identity)""/>
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x86;Dummy=2"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Restore"/>
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x64;Dummy=3"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Restore"/>
</Target>
<Target Name="Build32" DependsOnTargets="Restore" Condition="'$(Build)'!='false'">
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x86;Dummy=1"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Build"/>
</Target>
<Target Name="Build64" DependsOnTargets="Restore" Condition="'$(Build)'!='false'">
<MSBuild Projects="@(Project)"
Properties="$(BuildProperties);Platform=x64;Dummy=1"
BuildInParallel="true"
StopOnFirstFailure="true"
Targets="Build"/>
</Target>
<Target Name="Build" DependsOnTargets="Build32;Build64" Condition="'$(Build)'!='false'">
</Target>
<Target Name="Package" DependsOnTargets="Clean;Build">
<ItemGroup>
<_ComponentFile Include="build\x86\bin\foo_scrobble\foo_scrobble.dll"/>
<_ComponentFile Include="build\x64\bin\foo_scrobble\foo_scrobble.dll">
<Name>x64/foo_scrobble.dll</Name>
</_ComponentFile>
<_ArchiveFile Include="@(_ComponentFile)"/>
<_ArchiveFile Include="build\x86\bin\foo_scrobble\foo_scrobble.pdb"/>
<_ArchiveFile Include="build\x64\bin\foo_scrobble\foo_scrobble.pdb">
<Name>x64/foo_scrobble.pdb</Name>
</_ArchiveFile>
</ItemGroup>
<GetVersionInfo ModulePath="build\x64\bin\foo_scrobble\foo_scrobble.dll">
<Output TaskParameter="FileVersion" PropertyName="FileVersion"/>
</GetVersionInfo>
<Zip Files="@(_ComponentFile)"
OutputFilename="$(PackageDir)foo_scrobble-$(FileVersion).fb2k-component"/>
<Zip Files="@(_ArchiveFile)"
OutputFilename="$(PackageDir)foo_scrobble-$(FileVersion).zip"/>
</Target>
</Project>