| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- <?xml version="1.0" encoding="utf-8"?>
- <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!-- **********************************************************************************************
- Targets For FullBuild
- *********************************************************************************************** -->
- <Target Name="_FullBuild" DependsOnTargets="_CleanOutputDirectory;_BuildProtoGen;_GenerateSource;_CopyGeneratedSource">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=2" Targets="_BuildAllConfigurations" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=3" Targets="_BuildAllConfigurations" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=4" Targets="_BuildAllConfigurations" />
- </Target>
- <Target Name="_BuildAllConfigurations">
- <!-- Release Package -->
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildConfiguration=Release" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildConfiguration=Release_Silverlight" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);PackageName=Release-$(ForcedFrameworkVersion)" Targets="_GeneratePackage" />
- <!-- Full Package -->
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildConfiguration=Debug" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildConfiguration=Debug_Silverlight" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);PackageName=Full-$(ForcedFrameworkVersion)" Targets="_GeneratePackage" />
- </Target>
- <Target Name="_BuildConfiguration" DependsOnTargets="_ReportConfig;_Clean;_BuildSolution;_Test;_PreparePackageComponent" />
- <Target Name="_ReportConfig">
- <Message Importance="high" Text="
- Building $(BuildConfiguration) configuration for .NET Framework $(ForcedFrameworkVersion) $(Platform)" />
- </Target>
- <!-- **********************************************************************************************
- Targets For Build
- *********************************************************************************************** -->
- <Target Name="_BuildSolution">
- <Message Text="Running $(SolutionTarget) $(BuildConfiguration) with $(BuildTools) on $(SolutionFile)" Importance="normal" />
- <MSBuild Targets="$(SolutionTarget)" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
- Properties="Configuration=$(BuildConfiguration);Platform=$(Platform);TargetFrameworkVersion=$(ForcedFrameworkVersion);TreatWarningsAsErrors=true;SilverlightVersion=$(SilverlightVersion)"
- />
- </Target>
- <Target Name="_Clean">
- <RemoveDir Directories="@(WorkingDirectories)" Condition="Exists(%(WorkingDirectories.Identity))" />
- <MakeDir Directories="@(WorkingDirectories)" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Clean;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform)" Targets="_BuildSolution" ContinueOnError="true" />
- </Target>
- <Target Name="_Compile">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform)" Targets="_BuildSolution" />
- </Target>
- <Target Name="Requires20">
- <Error Text="Must be run with TargetVersion=2" Condition=" '$(TargetVersion)' != '2' " />
- </Target>
- <Target Name="RequiresRelease">
- <Error Text="Must be run with BuildConfiguration=Release" Condition=" '$(BuildConfiguration)' != 'Release' " />
- </Target>
- <!-- **********************************************************************************************
- Targets For GenerateSource
- *********************************************************************************************** -->
- <Target Name="_BuildProtoGen">
- <MSBuild Targets="Rebuild" ToolsVersion="3.5"
- Projects="$(ProjectDirectory)\src\ProtocolBuffers\ProtocolBuffers.csproj;$(ProjectDirectory)\src\ProtoGen\ProtoGen.csproj"
- Properties="Step=_BuildProtoGen;Configuration=Release;Platform=AnyCPU;TargetFrameworkVersion=v2.0;DebugType=none;DocumentationFile=;TreatWarningsAsErrors=true;OutputPath=$(BuildOutputDirectory)\ProtoGen;" />
- </Target>
- <Target Name="_CleanTempSource">
- <Message Importance="normal" Text="Cleaning source directory $(SourceTempDirectory)"/>
- <RemoveDir Directories="$(SourceTempDirectory)" Condition="Exists($(SourceTempDirectory))" />
- <MakeDir Directories="$(SourceTempDirectory)" />
- </Target>
-
- <Target Name="_GenerateSource" DependsOnTargets="_CleanTempSource">
- <Message Importance="high" Text="Generating source from proto files" />
- <Exec Command="$(ProtocExePath) --proto_path=$(ProtosDirectory) --descriptor_set_out=compiled.pb @(Protos->'%(RelativeDir)%(Filename)%(Extension)', ' ')" WorkingDirectory="$(SourceTempDirectory)" />
- <Exec Command="$(ProtogenExePath) compiled.pb" WorkingDirectory="$(SourceTempDirectory)" />
- <!-- Generate the AddressBookProtos.cs directly -->
- <Exec Command="$(ProtogenExePath) --protoc_dir=$(LibDirectory) --proto_path=$(ProtosDirectory) $(ProtosDirectory)\tutorial\addressbook.proto -namespace=Google.ProtocolBuffers.Examples.AddressBook -umbrella_classname=AddressBookProtos" WorkingDirectory="$(SourceTempDirectory)" />
- </Target>
- <Target Name="_CopyGeneratedSource" DependsOnTargets="_GenerateSource">
- <Copy SourceFiles="%(GeneratedSource.Identity)" DestinationFiles="%(GeneratedSource.TargetDirectory)\%(GeneratedSource.Filename)%(GeneratedSource.Extension)" />
- </Target>
- <!-- **********************************************************************************************
- Targets For Test
- *********************************************************************************************** -->
-
- <Target Name="_Test">
- <CallTarget Targets="_RunTests" />
- </Target>
- <Target Name="_RunTests">
- <!-- NUnit -->
- <Copy SourceFiles="$(NUnitExeConfig)" DestinationFiles="$(NUnitExePath).config" />
- <Exec Condition="$(BuildConfiguration)=='Debug' or $(BuildConfiguration)=='Release'"
- Command=""$(NUnitExePath)" /nologo /noshadow %(TestContainer.Identity) /xml:$(BuildTempDirectory)\%(TestContainer.Filename).xml" />
- <!-- StatLight -->
- <Exec Condition="$(BuildConfiguration)=='Debug_Silverlight' or $(BuildConfiguration)=='Release_Silverlight'"
- Command=""$(StatLightExePath)" -x %(StatLightTestContainer.Identity) --ReportOutputFileType=NUnit --ReportOutputFile=$(BuildTempDirectory)\%(StatLightTestContainer.Filename).xml" />
- </Target>
- <!-- **********************************************************************************************
- Targets For Package
- *********************************************************************************************** -->
-
- <Target Name="_CleanOutputDirectory">
- <RemoveDir Directories="$(BuildOutputPackage)" ContinueOnError="true" />
- <RemoveDir Directories="$(BuildOutputDirectory)" ContinueOnError="true" />
- <MakeDir Directories="$(BuildOutputDirectory)" ContinueOnError="true" />
- </Target>
-
- <Target Name="_PreparePackageComponent">
- <Copy SourceFiles="@(DynamicPackageItem)" DestinationFolder="$(BuildOutputPackage)\$(BuildConfiguration)\%(DynamicPackageItem.TargetDirectory)\%(DynamicPackageItem.RecursiveDir)" />
- </Target>
- <Target Name="_GeneratePackage">
- <Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputPackage)\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" />
- <Exec Command=""$(ZipExePath)" a -tzip ..\$(PackageName).zip * -r" WorkingDirectory="$(BuildOutputPackage)" />
- </Target>
- <!-- **********************************************************************************************
- Targets For Benchmark
- *********************************************************************************************** -->
- <Target Name="_GenerateBenchmarkSource">
- <PropertyGroup>
- <Args>$(BenchmarkProtosDirectory)\google_size.proto $(BenchmarkProtosDirectory)\google_speed.proto</Args>
- </PropertyGroup>
- <Exec Command="$(ProtocExePath) --proto_path=$(BenchmarkProtosDirectory);$(ProtosDirectory) --include_imports=compiled.pb --descriptor_set_out=compiled.pb $(Args)" WorkingDirectory="$(SourceTempDirectory)" />
- <Exec Command="$(ProtogenExePath) compiled.pb" WorkingDirectory="$(SourceTempDirectory)" />
- </Target>
- <Target Name="_CompileBenchmarkAssemblyInFramework20" Condition=" '$(MSBuildToolsVersion)' != '2.0' ">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform)"
- Targets="_CompileBenchmarkAssembly" ToolsVersion="2.0" />
- </Target>
- <Target Name="_CompileBenchmarkAssembly" DependsOnTargets="_GenerateBenchmarkSource">
- <Error Text="Must be run with Framework 2.0" Condition=" '$(MSBuildToolsVersion)' != '2.0' " />
- <ItemGroup>
- <BenchmarkSources Include="$(SourceTempDirectory)\GoogleSizeProtoFile.cs" />
- <BenchmarkSources Include="$(SourceTempDirectory)\GoogleSpeedProtoFile.cs" />
- <BenchmarkSources Include="$(SourceDirectory)\ProtoBench\Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <Csc
- TargetType="library"
- OutputAssembly="$(BuildTempDirectory)\BenchmarkTypes.dll"
- Optimize="true"
- Sources="@(BenchmarkSources)"
- References="$(SourceDirectory)\ProtocolBuffers\bin\$(BuildConfiguration)\Google.ProtocolBuffers.dll"
- />
- </Target>
- <Target Name="_PrepareBenchmarkEnvironment" DependsOnTargets="_CompileBenchmarkAssemblyInFramework20">
- <ItemGroup>
- <BenchmarkResources Include="$(BenchmarkProtosDirectory)\google_message1.dat" />
- <BenchmarkResources Include="$(BenchmarkProtosDirectory)\google_message2.dat" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtocolBuffers\bin\$(BuildConfiguration)\Google.ProtocolBuffers.dll" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(BuildConfiguration)\Google.ProtocolBuffers.Serialization.dll" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtoBench\bin\$(BuildConfiguration)\ProtoBench.exe" />
- </ItemGroup>
- <Copy SourceFiles="@(BenchmarkResources)" DestinationFolder="$(BuildTempDirectory)" />
- </Target>
- <Target Name="_RunBenchmarks" DependsOnTargets="_PrepareBenchmarkEnvironment">
- <ItemGroup>
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage1,BenchmarkTypes" />
- <BenchmarkParameter Include="google_message1.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage1,BenchmarkTypes" />
- <BenchmarkParameter Include="google_message1.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage2,BenchmarkTypes" />
- <BenchmarkParameter Include="google_message2.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage2,BenchmarkTypes" />
- <BenchmarkParameter Include="google_message2.dat" />
- </ItemGroup>
- <Message Text="Running $(ProtoBenchExePath) from $(BuildTempDirectory)" />
- <Exec Command=""$(ProtoBenchExePath)" $(BenchmarkArgs) @(BenchmarkParameter->'%(Identity)', ' ') "/log:$(BenchmarkOutputFile)""
- WorkingDirectory="$(BuildTempDirectory)" />
- </Target>
- </Project>
|