Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
9.5 KiB
167 lines
9.5 KiB
<?xml version="1.0" encoding="utf-8"?> |
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
|
|
<!-- ********************************************************************************************** |
|
High-level Targets |
|
*********************************************************************************************** --> |
|
|
|
<Target Name="Clean" DependsOnTargets="_Clean" /> |
|
<Target Name="Build" DependsOnTargets="_Compile;_Test" /> |
|
<Target Name="Test" DependsOnTargets="_Test" /> |
|
<Target Name="Rebuild" DependsOnTargets="Clean;Build" /> |
|
<Target Name="Publish" DependsOnTargets="Clean;Build;_Publish" /> |
|
|
|
<!-- ********************************************************************************************** |
|
Properties |
|
*********************************************************************************************** --> |
|
|
|
<PropertyGroup> |
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
<Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform> |
|
<TargetVersion Condition=" '$(TargetVersion)' == '' ">NET20</TargetVersion> |
|
<BuildParams></BuildParams> |
|
|
|
<!--Directory Paths--> |
|
<ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory> |
|
<SourceDirectory>$(ProjectDirectory)\src</SourceDirectory> |
|
<LibDirectory>$(ProjectDirectory)\lib</LibDirectory> |
|
|
|
<!--File Paths--> |
|
<BuildTempDirectory>$(ProjectDirectory)\build_temp\$(Configuration)\$(TargetVersion)</BuildTempDirectory> |
|
<BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\$(TargetVersion)</BuildOutputDirectory> |
|
<SolutionFile>$(SourceDirectory)\ProtocolBuffersLibrary.$(TargetVersion).sln</SolutionFile> |
|
|
|
<!--Tool Paths--> |
|
<NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath> |
|
<StatLightExePath>$(LibDirectory)\StatLight\tools\StatLight.exe</StatLightExePath> |
|
</PropertyGroup> |
|
|
|
<!-- ********************************************************************************************** |
|
Target Versions |
|
*********************************************************************************************** --> |
|
|
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'NET20' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>NUNIT</TestFramework> |
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'NET35' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>NUNIT</TestFramework> |
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'NET40' "> |
|
<BuildTools>4.0</BuildTools> |
|
<TestFramework>NUNIT</TestFramework> |
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'CF20' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>NONE</TestFramework> |
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'CF35' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>NONE</TestFramework> |
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'SL20' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>SILVERLIGHT</TestFramework> |
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'SL30' "> |
|
<BuildTools>3.5</BuildTools> |
|
<TestFramework>SILVERLIGHT</TestFramework> |
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'SL40' "> |
|
<BuildTools>4.0</BuildTools> |
|
<TestFramework>SILVERLIGHT</TestFramework> |
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
|
</PropertyGroup> |
|
<PropertyGroup Condition=" '$(TargetVersion)' == 'PL40' "> |
|
<BuildTools>4.0</BuildTools> |
|
<TestFramework>NONE</TestFramework> |
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
|
<BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\portable-net40+sl4+sl5+wp7+wp8+win8</BuildOutputDirectory> |
|
</PropertyGroup> |
|
|
|
<!-- ********************************************************************************************** |
|
File Groups |
|
*********************************************************************************************** --> |
|
|
|
<ItemGroup> |
|
<WorkingDirectories Include="$(BuildTempDirectory)" /> |
|
<WorkingDirectories Include="$(BuildOutputDirectory)" /> |
|
|
|
<TestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.dll" /> |
|
<TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.dll" /> |
|
<TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersMixedLite.Test.dll" /> |
|
|
|
<StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.xap" /> |
|
<StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.xap" /> |
|
<StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLiteMixed.Test.xap" /> |
|
|
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.dll" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.pdb" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.xml" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.dll" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.pdb" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.xml" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.dll" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.pdb" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.xml" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.dll" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.pdb" /> |
|
<PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.xml" /> |
|
</ItemGroup> |
|
|
|
<!-- ********************************************************************************************** |
|
Targets For Build |
|
*********************************************************************************************** --> |
|
|
|
<Target Name="_Configured"> |
|
<Message Text="Building $(TargetVersion) for configuration $(Configuration), platform $(Platform)" Importance="normal" /> |
|
<Error Text="Unknown or missing value for TargetVersion=[value]" Condition=" '$(BuildTools)' == '' " /> |
|
</Target> |
|
|
|
<Target Name="_Clean" DependsOnTargets="_Configured"> |
|
<RemoveDir Directories="@(WorkingDirectories)" Condition="Exists(%(WorkingDirectories.Identity))" /> |
|
<MSBuild Targets="Clean" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)" |
|
Properties="Configuration=$(Configuration);Platform=$(Platform);" |
|
/> |
|
</Target> |
|
|
|
<Target Name="_Compile" DependsOnTargets="_Configured"> |
|
<MSBuild Targets="Build" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)" |
|
Properties="Configuration=$(Configuration);Platform=$(Platform);$(BuildParams)" |
|
/> |
|
</Target> |
|
|
|
<Target Name="_Publish" DependsOnTargets="_Configured"> |
|
<MakeDir Directories="$(BuildOutputDirectory)" /> |
|
<Copy SourceFiles="@(PublishItem)" DestinationFolder="$(BuildOutputDirectory)" /> |
|
</Target> |
|
|
|
<!-- ********************************************************************************************** |
|
Targets For Test |
|
*********************************************************************************************** --> |
|
|
|
<Target Name="_Test" DependsOnTargets="_Configured"> |
|
<MakeDir Directories="$(BuildTempDirectory)" /> |
|
<CallTarget Targets="_RunNunit" Condition=" '$(TestFramework)'=='NUNIT' " /> |
|
<CallTarget Targets="_RunStatLight" Condition=" '$(TestFramework)'=='SILVERLIGHT' " /> |
|
</Target> |
|
|
|
<Target Name="_RunNunit"> |
|
<Copy SourceFiles="$(LibDirectory)\NUnit-config\nunit-console.$(TargetFrameworkVersion).config" DestinationFiles="$(NUnitExePath).config" /> |
|
<Exec Command=""$(NUnitExePath)" /nologo /noshadow %(TestContainer.Identity) /xml:$(BuildTempDirectory)\%(TestContainer.Filename).xml" /> |
|
</Target> |
|
|
|
<Target Name="_RunStatLight"> |
|
<Exec Condition=" 'a' == 'b' " |
|
Command=""$(StatLightExePath)" -x %(StatLightTestContainer.Identity) --ReportOutputFileType=NUnit --ReportOutputFile=$(BuildTempDirectory)\%(StatLightTestContainer.Filename).xml" /> |
|
</Target> |
|
|
|
</Project>
|
|
|