diff options
author | ArnoldZokas <arnold.zokas@coderoom.net> | 2010-11-30 21:32:07 +0000 |
---|---|---|
committer | ArnoldZokas <arnold.zokas@coderoom.net> | 2010-11-30 21:32:07 +0000 |
commit | 1999a990bed07dd6f3d222f017bafa534b04e1eb (patch) | |
tree | 5bd6b8d591f9594b0ead12fcc164d954d9b2d2f7 /build | |
parent | d58af394bdc01621aeb049635cbd101a83bb2108 (diff) | |
download | protobuf-1999a990bed07dd6f3d222f017bafa534b04e1eb.tar.gz protobuf-1999a990bed07dd6f3d222f017bafa534b04e1eb.tar.bz2 protobuf-1999a990bed07dd6f3d222f017bafa534b04e1eb.zip |
Implemented distribution package generation
Diffstat (limited to 'build')
-rw-r--r-- | build/Common.targets | 18 | ||||
-rw-r--r-- | build/GenerateCompletePackage.bat | 10 | ||||
-rw-r--r-- | build/GenerateReleasePackage.bat | 6 | ||||
-rw-r--r-- | build/build.csproj | 37 |
4 files changed, 54 insertions, 17 deletions
diff --git a/build/Common.targets b/build/Common.targets index 1b87ee16..067bb28c 100644 --- a/build/Common.targets +++ b/build/Common.targets @@ -33,4 +33,22 @@ <Exec Command=""E:\dotnet-protobufs\lib\NUnit 2.2.8.0\nunit-console.exe" %(TestContainer.Identity) /xml:$(BuildOutputDirectory)\%(TestContainer.Filename).$(BuildConfiguration).xml" /> </Target> + <Target Name="_PreparePackageComponent"> + <Copy SourceFiles="@(DynamicPackageItem)" DestinationFolder="$(BuildOutputDirectory)\%(DynamicPackageItem.TargetDirectory)\%(DynamicPackageItem.RecursiveDir)" /> + </Target> + + <Target Name="_GeneratePackage"> + <ItemGroup><ExistingArchives Include="$(BuildOutputDirectory)\*.zip" /></ItemGroup> + <Delete Files="@(ExistingArchives)" /> + + <Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputDirectory)\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" /> + <Exec Command=""E:\dotnet-protobufs\lib\7-Zip 9.20\7za.exe" a -tzip $(PackageName) * -r" WorkingDirectory="$(BuildOutputDirectory)" /> + + <ItemGroup><DirectoriesToDelete Include="$([System.IO.Directory]::GetDirectories('$(BuildOutputDirectory)'))" /></ItemGroup> + <ItemGroup><FilesToDelete Include="$(BuildOutputDirectory)\**\*.*" Exclude="$(BuildOutputDirectory)\$(PackageName)" /></ItemGroup> + + <Delete Files="@(FilesToDelete)" /> + <RemoveDir Directories="@(DirectoriesToDelete)" ContinueOnError="true" /> + </Target> + </Project>
\ No newline at end of file diff --git a/build/GenerateCompletePackage.bat b/build/GenerateCompletePackage.bat index 8b4bde18..d97ae9b9 100644 --- a/build/GenerateCompletePackage.bat +++ b/build/GenerateCompletePackage.bat @@ -1,17 +1,17 @@ @ECHO OFF -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Debug +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Debug IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Debug_Silverlight2 +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Debug_Silverlight2 IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Release +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Release IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Release_Silverlight2 +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Release_Silverlight2 IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:GeneratePackage /p:PackageScope=AllBinariesAndSource +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:GeneratePackage /p:PackageName=AllBinariesAndSource.zip :END PAUSE
\ No newline at end of file diff --git a/build/GenerateReleasePackage.bat b/build/GenerateReleasePackage.bat index fc4e9561..f70d3288 100644 --- a/build/GenerateReleasePackage.bat +++ b/build/GenerateReleasePackage.bat @@ -1,11 +1,11 @@ @ECHO OFF -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Release +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Release IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build /p:BuildConfiguration=Release_Silverlight2 +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:Build;PreparePackageComponent /p:BuildConfiguration=Release_Silverlight2 IF ERRORLEVEL 1 GOTO END -%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:GeneratePackage /p:PackageScope=ReleaseBinaries +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild build.csproj /m /t:GeneratePackage /p:PackageName=ReleaseBinaries.zip :END PAUSE
\ No newline at end of file diff --git a/build/build.csproj b/build/build.csproj index 21d13359..095a7895 100644 --- a/build/build.csproj +++ b/build/build.csproj @@ -7,17 +7,19 @@ <!--Directory Paths--> <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory> + <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory> + <LibDirectory>$(ProjectDirectory)\lib</LibDirectory> <ProtosDirectory>$(ProjectDirectory)\protos</ProtosDirectory> <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(BuildConfiguration)</BuildTempDirectory> - <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory> + <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(BuildConfiguration)</BuildOutputDirectory> <!--File Paths--> - <SolutionFile>$(ProjectDirectory)\src\ProtocolBuffers.sln</SolutionFile> + <SolutionFile>$(SourceDirectory)\ProtocolBuffers.sln</SolutionFile> <!--Tool Paths--> - <ProtocExePath>$(ProjectDirectory)\lib\protoc.exe</ProtocExePath> - <ProtogenExePath>$(ProjectDirectory)\src\ProtoGen\bin\$(BuildConfiguration)\protogen.exe</ProtogenExePath> - <NUnitExePath>$(ProjectDirectory)\lib\NUnit 2.2.8.0\nunit-console.exe</NUnitExePath> + <ProtocExePath>$(LibDirectory)\protoc.exe</ProtocExePath> + <ProtogenExePath>$(SourceDirectory)\ProtoGen\bin\$(BuildConfiguration)\protogen.exe</ProtogenExePath> + <NUnitExePath>$(LibDirectory)\NUnit 2.2.8.0\nunit-console.exe</NUnitExePath> </PropertyGroup> <Import Project="Common.targets"/> @@ -68,13 +70,30 @@ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory> </GeneratedSource> - <TestContainer Include="$(ProjectDirectory)\src\ProtocolBuffers.Test\bin\$(BuildConfiguration)\Google.ProtocolBuffers.Test.dll" /> - <TestContainer Include="$(ProjectDirectory)\src\ProtoGen.Test\bin\$(BuildConfiguration)\Google.ProtocolBuffers.ProtoGen.Test.dll" /> + <TestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(BuildConfiguration)\Google.ProtocolBuffers.Test.dll" /> + <TestContainer Include="$(SourceDirectory)\ProtoGen.Test\bin\$(BuildConfiguration)\Google.ProtocolBuffers.ProtoGen.Test.dll" /> + + <DynamicPackageItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(BuildConfiguration)\Google.ProtocolBuffers.*" /> + <DynamicPackageItem Include="$(SourceDirectory)\ProtoGen\bin\$(BuildConfiguration)\ProtoGen.*" /> + <DynamicPackageItem Include="$(SourceDirectory)\ProtoMunge\bin\$(BuildConfiguration)\ProtoMunge.*" /> + <DynamicPackageItem Include="$(SourceDirectory)\ProtoDump\bin\$(BuildConfiguration)\ProtoDump.*" /> + <DynamicPackageItem Include="$(SourceDirectory)\ProtoBench\bin\$(BuildConfiguration)\ProtoBench.*" /> + + <StaticPackageItem Include="$(ProjectDirectory)\readme.txt" /> + <StaticPackageItem Include="$(ProjectDirectory)\license.txt" /> + <StaticPackageItem Include="$(ProjectDirectory)\protos\**\*.*"> + <TargetDirectory>\protos</TargetDirectory> + </StaticPackageItem> + <StaticPackageItem Include="$(LibDirectory)\Protoc*"> + <TargetDirectory>\Protoc</TargetDirectory> + </StaticPackageItem> + </ItemGroup> <!-- targets --> <Target Name="Build" DependsOnTargets="_Compile;_Test" /> - <Target Name="RunBenchmarks" DependsOnTargets="_Compile" /> - <Target Name="GeneratePackage" /> + <Target Name="PreparePackageComponent" DependsOnTargets="_PreparePackageComponent" /> + <Target Name="GeneratePackage" DependsOnTargets="_GeneratePackage" /> + <Target Name="RunBenchmarks" /> </Project> |