build.csproj 14.6 KB
Newer Older
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3

4
  <!-- build targets -->
5 6
  <Target Name="Clean" DependsOnTargets="_CleanAll" />
  <Target Name="BuildTools" DependsOnTargets="_BuildTools" />
7
  <Target Name="GenerateProjects" DependsOnTargets="_GenerateProjects" />
8
  <Target Name="GenerateSource" DependsOnTargets="_GenerateSource;_CopyGeneratedSource" />
9
  <Target Name="RebuildSource" DependsOnTargets="Clean;BuildTools;GenerateSource" />
10
  <Target Name="Build" DependsOnTargets="GenerateProjects;BuildTools;GenerateSource;_CompileAll" />
11
  <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
12
  <Target Name="GeneratePackage" DependsOnTargets="_PackageAll;_GeneratePackage" />
13
  <Target Name="FullBuild" DependsOnTargets="Rebuild;GeneratePackage" />
14 15 16
  <!-- misc targets -->
  <Target Name="RunBenchmarks" DependsOnTargets="_CleanAll;_BuildTools;_RunBenchmarks" />

17 18
  <PropertyGroup>
    <ProjectName>Protocol Buffers</ProjectName>
19 20 21
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>
    
22
    <!--Directory Paths-->
23
    <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
24 25 26
    <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
    <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
    <ProtosDirectory>$(ProjectDirectory)\protos</ProtosDirectory>
27 28

    <SourceTempDirectory>$(ProjectDirectory)\build_temp\GeneratedSource</SourceTempDirectory>
29
    <BuildTempDirectory>$(ProjectDirectory)\build_temp</BuildTempDirectory>
30
    <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory>
31
    <BuildOutputPackage>$(BuildOutputDirectory)</BuildOutputPackage>
32 33 34

    <BenchmarkArgs>/v2 /fast /formats</BenchmarkArgs>
    <BenchmarkOutputFile>$(BuildTempDirectory)\..\BenchmarkResults.txt</BenchmarkOutputFile>
35
    <BenchmarkProtosDirectory>$(ProjectDirectory)\benchmarks</BenchmarkProtosDirectory>
36

37
    <PackageName Condition=" '$(PackageName)' == '' ">$(Configuration)</PackageName>
38
    
39
    <!--Tool Paths-->
40 41
    <ProtocExePath>$(BuildOutputDirectory)\tools\protoc.exe</ProtocExePath>
    <ProtogenExePath>$(BuildOutputDirectory)\tools\protogen.exe</ProtogenExePath>
csharptest's avatar
csharptest committed
42
    <NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath>
43
    <CsProjectProjector>$(LibDirectory)\CsProjectProjector\CsProjectProjector.exe</CsProjectProjector>
44
    <ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath>
45 46
  
</PropertyGroup>
47

48
  <Import Project="Common.targets"/>
49

50
  <!-- Proto Files -->
51
  <ItemGroup>
52
    <Protos Include="$(ProtosDirectory)\extest\unittest_issues.proto" />
53
    <Protos Include="$(ProtosDirectory)\extest\unittest_extras.proto" />
54 55
    <Protos Include="$(ProtosDirectory)\extest\unittest_extras_full.proto" />
    <Protos Include="$(ProtosDirectory)\extest\unittest_extras_lite.proto" />
56
    <Protos Include="$(ProtosDirectory)\extest\unittest_extras_xmltest.proto" />
57
    <Protos Include="$(ProtosDirectory)\extest\unittest_generic_services.proto" />
58
    <Protos Include="$(ProtosDirectory)\extest\unittest_rpc_interop.proto" />
59
    <Protos Include="$(ProtosDirectory)\extest\unittest_rpc_interop_lite.proto" />
60 61 62 63 64 65 66 67 68
    <Protos Include="$(ProtosDirectory)\google\protobuf\descriptor.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\csharp_options.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_csharp_options.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_custom_options.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_embed_optimize_for.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_empty.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_import.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_import_lite.proto" />
69 70
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_lite.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_lite_imports_nonlite.proto" />
71 72 73
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_mset.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_no_generic_services.proto" />
    <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_optimize_for.proto" />
74 75
    <Protos Include="$(ProtosDirectory)\google\test\google_size.proto" />
    <Protos Include="$(ProtosDirectory)\google\test\google_speed.proto" />
76
    <Protos Include="$(ProtosDirectory)\tutorial\addressbook.proto" />
77 78 79 80 81 82
    <!-- for benchmark -->
    <Protos Include="$(ProtosDirectory)\benchmarks\google_size.proto" />
    <Protos Include="$(ProtosDirectory)\benchmarks\google_speed.proto" />
  </ItemGroup>
  <!-- Generated Source -->
  <ItemGroup>
83
    <!-- Main protos -->
84
    <GeneratedSource Include="$(SourceTempDirectory)\CSharpOptions.cs">
85 86
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory>
    </GeneratedSource>
87
    <GeneratedSource Include="$(SourceTempDirectory)\DescriptorProtoFile.cs">
88 89
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory>
    </GeneratedSource>
Jon Skeet's avatar
Jon Skeet committed
90
        
91
    <!-- Address book sample -->
92
    <GeneratedSource Include="$(SourceTempDirectory)\AddressBookProtos.cs">
93 94
      <TargetDirectory>$(SourceDirectory)\AddressBook</TargetDirectory>
    </GeneratedSource>
95
    <!-- Unit test -->
96
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasProtoFile.cs">
97 98
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
99
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasIssuesProtoFile.cs">
100 101
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
102
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs">
103 104
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
105
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCSharpOptionsProtoFile.cs">
106 107
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
108
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCustomOptionsProtoFile.cs">
109 110
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
111
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmbedOptimizeForProtoFile.cs">
112 113
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
114
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmptyProtoFile.cs">
115 116
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
117
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs">
118 119
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>  
120
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
121 122
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
123
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestMessageSetProtoFile.cs">
124 125
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
126
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestNoGenericServicesProtoFile.cs">
127 128
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
129
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestOptimizeForProtoFile.cs">
130 131
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
132
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
133 134
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
135
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInterop.cs">
136 137
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
138
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInteropLite.cs">
139 140
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
141
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGenericServices.cs">
142 143
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
144
    <!-- Lite unit test -->
145
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasFullProtoFile.cs">
146 147
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
148
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasLiteProtoFile.cs">
149 150
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
151
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs">
152 153
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
154
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
155 156
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
157
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteImportNonLiteProtoFile.cs">
158 159
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
160
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteProtoFile.cs">
161 162
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
163
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
164 165
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
166
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSizeProtoFile.cs">
167 168
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
169
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSpeedProtoFile.cs">
170 171
      <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
    </GeneratedSource>
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
    <GeneratedSource Include="$(SourceTempDirectory)\GoogleSizeProtoFile.cs">
      <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
    </GeneratedSource>
    <GeneratedSource Include="$(SourceTempDirectory)\GoogleSpeedProtoFile.cs">
      <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
    </GeneratedSource>
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
      <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
    </GeneratedSource>
    <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
      <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
    </GeneratedSource>
  </ItemGroup>
  <!-- Package Items -->
  <ItemGroup>
187
    <StaticPackageItem Include="$(ProjectDirectory)\CHANGES.txt" />
188
    <StaticPackageItem Include="$(ProjectDirectory)\license.txt" />
189 190 191
    <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\descriptor.proto">
      <TargetDirectory>\protos\google\protobuf</TargetDirectory>
    </StaticPackageItem>
Jon Skeet's avatar
Jon Skeet committed
192 193 194
    <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\compiler\plugin.proto">
      <TargetDirectory>\protos\google\protobuf\compiler</TargetDirectory>
    </StaticPackageItem>
195 196 197 198 199
    <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\csharp_options.proto">
      <TargetDirectory>\protos\google\protobuf</TargetDirectory>
    </StaticPackageItem>
    <StaticPackageItem Include="$(ProjectDirectory)\protos\tutorial\addressbook.proto">
      <TargetDirectory>\protos\tutorial</TargetDirectory>
200 201
    </StaticPackageItem>
  </ItemGroup>
202 203 204
  <!-- Tools -->
  <ItemGroup>
    <ToolsTestContainer Include="$(SourceDirectory)\ProtoGen.Test\bin\NET35\Release\Google.ProtocolBuffers.ProtoGen.Test.dll" />
205

206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
    <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers\bin\NET35\Release\Google.ProtocolBuffers.dll" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\NET35\Release\Google.ProtocolBuffers.Serialization.dll" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe.config" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtoMunge\bin\NET35\Release\ProtoMunge.exe" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtoDump\bin\NET35\Release\ProtoDump.exe" />
    <ToolsOutputItem Include="$(SourceDirectory)\ProtoBench\bin\NET35\Release\ProtoBench.exe" />
    <ToolsOutputItem Include="$(LibDirectory)\protoc.exe" />
    <ToolsOutputItem Include="$(LibDirectory)\protoc-license.txt" />
  </ItemGroup>
  <!-- Temporary Directories -->
  <ItemGroup>
    <TempBuildFolder Include="$(BuildTempDirectory)" />
    <TempBuildFolder Include="$(BuildOutputDirectory)" />
    <TempBuildFolder Include="$(SourceDirectory)\AddressBook\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\AddressBook\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\bin" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\obj" />
    <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\bin" />
  </ItemGroup>
241
</Project>