diff options
author | csharptest <roger@csharptest.net> | 2011-10-02 16:33:22 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2011-10-02 16:33:22 -0500 |
commit | d444748edc798f48d80cb250cc3bfda913d8cfff (patch) | |
tree | 804c25c81f12dd82f109d3b960b21b729220078f /build/build.csproj | |
parent | 2e89071876750487160fef06295143837d571cd1 (diff) | |
download | protobuf-d444748edc798f48d80cb250cc3bfda913d8cfff.tar.gz protobuf-d444748edc798f48d80cb250cc3bfda913d8cfff.tar.bz2 protobuf-d444748edc798f48d80cb250cc3bfda913d8cfff.zip |
Several build related changes in this commit:
1. Refactoring of build to allow multiple target frameworks
2. Addition of multiple Silverlight versions
3. Renamed *_Silverlight2 configurations to *_Silverlight
4. Added batch files for each framework build (Build20, Build35, Build40)
5. Moved the package building into MSBuild tasks
6. BuildAll.bat now builds all packages in one build
7. Removed Generate*Package.bat batch files (replaced by BuildAll.bat)
8. Removed the ability to build with 3.5 MSBuild
9. Source is only generated with Release/2.0 build of ProtoGen
10. Removed unit testing proto files from packaging
11. Removed the remaining 'pause' statements from all batch files
12. RunBenchmarks target now builds with .NET 2.0 instead of 4.0
13. Benchmark arguments can now be specified with BenchmarkArgs parameter
14. ProtoBench now supports '/log:path' so console can still see progress
15. Updated PublishRelease.bat and *.nuspec for new build output
16. Updated ProtocolBuffers.Serialization.csproj to omit extensions for 2.0
17. Added NUnit console configurations for each .NET framework version
Diffstat (limited to 'build/build.csproj')
-rw-r--r-- | build/build.csproj | 108 |
1 files changed, 65 insertions, 43 deletions
diff --git a/build/build.csproj b/build/build.csproj index d2d5d04c..bbc4392a 100644 --- a/build/build.csproj +++ b/build/build.csproj @@ -4,29 +4,45 @@ <PropertyGroup> <ProjectName>Protocol Buffers</ProjectName> <BuildConfiguration Condition=" '$(BuildConfiguration)' == '' ">Error</BuildConfiguration> - <BuildTools Condition=" '$(BuildTools)' == '' ">4.0</BuildTools> - <ForcedFrameworkVersion Condition=" '$(BuildTools)' == '3.5' ">TargetFrameworkVersion=v2.0;</ForcedFrameworkVersion> - + <Platform>Any CPU</Platform> + <!-- BuildToolsVersion --> + <BuildTools>3.5</BuildTools> + <BuildTools Condition=" '$(TargetVersion)' == '4' ">4.0</BuildTools> + <!-- TargetFrameworkVersion --> + <ForcedFrameworkVersion>v2.0</ForcedFrameworkVersion> + <ForcedFrameworkVersion Condition=" '$(TargetVersion)' == '3' ">v3.5</ForcedFrameworkVersion> + <ForcedFrameworkVersion Condition=" '$(TargetVersion)' == '4' ">v4.0</ForcedFrameworkVersion> + <TargetFrameworkVersion>$(ForcedFrameworkVersion)</TargetFrameworkVersion> + <!-- SilverlightVersion --> + <SilverlightVersion>v2.0</SilverlightVersion> + <SilverlightVersion Condition=" '$(TargetVersion)' == '3' ">v3.0</SilverlightVersion> + <SilverlightVersion Condition=" '$(TargetVersion)' == '4' ">v4.0</SilverlightVersion> <!--Directory Paths--> <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory> <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory> <LibDirectory>$(ProjectDirectory)\lib</LibDirectory> <ProtosDirectory>$(ProjectDirectory)\protos</ProtosDirectory> + + <SourceTempDirectory>$(ProjectDirectory)\build_temp\GeneratedSource</SourceTempDirectory> + <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(BuildConfiguration)$(TargetVersion)</BuildTempDirectory> + <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory> + <BuildOutputPackage>$(BuildOutputDirectory)\$(ForcedFrameworkVersion)</BuildOutputPackage> + + <BenchmarkArgs>/v2 /fast /formats</BenchmarkArgs> + <BenchmarkOutputFile>$(BuildTempDirectory)\..\BenchmarkResults.txt</BenchmarkOutputFile> <BenchmarkProtosDirectory>$(ProjectDirectory)\benchmarks</BenchmarkProtosDirectory> - <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(BuildConfiguration)</BuildTempDirectory> - <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(BuildConfiguration)</BuildOutputDirectory> <PackageName Condition=" '$(PackageName)' == '' ">$(BuildConfiguration)</PackageName> <!--File Paths--> - <SolutionFile Condition=" '$(BuildTools)' == '4.0' ">$(SourceDirectory)\ProtocolBuffers.sln</SolutionFile> - <SolutionFile Condition=" '$(BuildTools)' == '3.5' ">$(SourceDirectory)\ProtocolBuffers2008.sln</SolutionFile> + <SolutionFile>$(SourceDirectory)\ProtocolBuffers.sln</SolutionFile> <!--Tool Paths--> <ProtocExePath>$(LibDirectory)\protoc.exe</ProtocExePath> - <ProtogenExePath>$(SourceDirectory)\ProtoGen\bin\$(BuildConfiguration)\protogen.exe</ProtogenExePath> + <ProtogenExePath>$(BuildOutputDirectory)\ProtoGen\protogen.exe</ProtogenExePath> <ProtoBenchExePath>$(BuildTempDirectory)\ProtoBench.exe</ProtoBenchExePath> <NUnitExePath>$(LibDirectory)\NUnit 2.2.8.0\nunit-console.exe</NUnitExePath> + <NUnitExeConfig>$(LibDirectory)\NUnit 2.2.8.0\nunit-console.$(ForcedFrameworkVersion).config</NUnitExeConfig> <ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath> </PropertyGroup> @@ -34,7 +50,6 @@ <ItemGroup> <WorkingDirectories Include="$(BuildTempDirectory)" /> - <WorkingDirectories Include="$(BuildOutputDirectory)" /> <Protos Include="$(ProtosDirectory)\extest\unittest_issues.proto" /> <Protos Include="$(ProtosDirectory)\extest\unittest_extras.proto" /> @@ -62,92 +77,92 @@ <Protos Include="$(ProtosDirectory)\google\test\google_speed.proto" /> <!-- Main protos --> - <GeneratedSource Include="$(BuildTempDirectory)\CSharpOptions.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\CSharpOptions.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\DescriptorProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\DescriptorProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory> </GeneratedSource> <!-- Address book sample --> - <GeneratedSource Include="$(BuildTempDirectory)\AddressBookProtos.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\AddressBookProtos.cs"> <TargetDirectory>$(SourceDirectory)\AddressBook</TargetDirectory> </GeneratedSource> <!-- Unit test --> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestExtrasProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestExtrasIssuesProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasIssuesProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestCSharpOptionsProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCSharpOptionsProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestCustomOptionsProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCustomOptionsProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestEmbedOptimizeForProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmbedOptimizeForProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestEmptyProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmptyProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestImportLiteProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestImportProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestMessageSetProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestMessageSetProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestNoGenericServicesProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestNoGenericServicesProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestOptimizeForProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestOptimizeForProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestRpcInterop.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInterop.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestRpcInteropLite.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInteropLite.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestGenericServices.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGenericServices.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> <!-- Lite unit test --> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestExtrasFullProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasFullProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestExtrasLiteProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasLiteProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestImportLiteProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestImportProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestLiteImportNonLiteProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteImportNonLiteProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestLiteProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestGoogleSizeProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSizeProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <GeneratedSource Include="$(BuildTempDirectory)\UnitTestGoogleSpeedProtoFile.cs"> + <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSpeedProtoFile.cs"> <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> @@ -167,8 +182,14 @@ <StaticPackageItem Include="$(ProjectDirectory)\CHANGES.txt" /> <StaticPackageItem Include="$(ProjectDirectory)\license.txt" /> - <StaticPackageItem Include="$(ProjectDirectory)\protos\**\*.*"> - <TargetDirectory>\protos</TargetDirectory> + <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\descriptor.proto"> + <TargetDirectory>\protos\google\protobuf</TargetDirectory> + </StaticPackageItem> + <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> </StaticPackageItem> <StaticPackageItem Include="$(LibDirectory)\Protoc*"> <TargetDirectory>\Protoc</TargetDirectory> @@ -178,14 +199,15 @@ <!-- targets --> <Target Name="Clean" DependsOnTargets="_Clean" /> - <Target Name="Build" DependsOnTargets="_Compile;_Test" /> + <Target Name="Build" DependsOnTargets="GenerateSource;_Compile;_Test" /> <Target Name="Test" DependsOnTargets="_RunTests" /> <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> - <Target Name="GenerateSource" DependsOnTargets="_GenerateSource;_CopyGeneratedSource" /> + <Target Name="GenerateSource" DependsOnTargets="_BuildProtoGen;_GenerateSource;_CopyGeneratedSource" /> <Target Name="BuildPackage" DependsOnTargets="PrepareOutputDirectory;PreparePackageComponent;GeneratePackage" /> <Target Name="PrepareOutputDirectory" DependsOnTargets="_CleanOutputDirectory" /> <Target Name="PreparePackageComponent" DependsOnTargets="_PreparePackageComponent" /> <Target Name="GeneratePackage" DependsOnTargets="_GeneratePackage" /> - <Target Name="RunBenchmarks" DependsOnTargets="_RunBenchmarks" /> - + <Target Name="RunBenchmarks" DependsOnTargets="Requires20;RequiresRelease;Rebuild;_RunBenchmarks" /> + <Target Name="FullBuild" DependsOnTargets="_FullBuild" /> + </Project> |