diff options
author | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2015-04-17 14:15:52 -0700 |
---|---|---|
committer | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2015-04-17 14:15:52 -0700 |
commit | 01c8c35ca3d3424a9473dd22ea2456933b3e8d36 (patch) | |
tree | de582cb9ef3e449f24015dec09f80e998806b26a /csharp/build/publish.csproj | |
parent | 813d6d652d8091e9365bfbd01efb5f2ee8bdfbce (diff) | |
parent | 1eab56aee8dddcb656db67d9fb87a8cc6a2ac112 (diff) | |
download | protobuf-01c8c35ca3d3424a9473dd22ea2456933b3e8d36.tar.gz protobuf-01c8c35ca3d3424a9473dd22ea2456933b3e8d36.tar.bz2 protobuf-01c8c35ca3d3424a9473dd22ea2456933b3e8d36.zip |
Merge pull request #2 from jtattermusch/csharp_protobuf_imported
Pulling protobuf-csharp-port into csharp/ directory
Diffstat (limited to 'csharp/build/publish.csproj')
-rw-r--r-- | csharp/build/publish.csproj | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/csharp/build/publish.csproj b/csharp/build/publish.csproj new file mode 100644 index 00000000..bbe71df5 --- /dev/null +++ b/csharp/build/publish.csproj @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Publish" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <!-- build targets -->
+ <Target Name="Clean" DependsOnTargets="_Clean" />
+ <Target Name="Build" DependsOnTargets="_Clean;_Prerequisites;_StampVersion;_GenerateSource;_Build" />
+ <Target Name="Label" DependsOnTargets="_HgLabel" />
+ <Target Name="Package" DependsOnTargets="_HgPack;_NugetPack" />
+ <Target Name="Prepare" DependsOnTargets="Clean;Build;Label;Package" />
+ <Target Name="PushAll" DependsOnTargets="_HgPush;_NugetPush" />
+ <Target Name="Publish" DependsOnTargets="Prepare;PushAll" />
+
+ <PropertyGroup>
+ <ProjectName>Protocol Buffers</ProjectName>
+ <VersionMajor>2</VersionMajor>
+ <VersionMinor>4</VersionMinor>
+ <VersionBuild>1</VersionBuild>
+ <VersionRevision></VersionRevision>
+ <VersionLabel></VersionLabel>
+
+ <PackagePrefix>protobuf-csharp-port-</PackagePrefix>
+ <PublishDebug>false</PublishDebug>
+
+ <GoogleUsername></GoogleUsername>
+ <GooglePassword></GooglePassword>
+
+ <!--Directory Paths-->
+ <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp</BuildTempDirectory>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory>
+ <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
+ <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
+
+ <!-- File Paths -->
+ <SigningKey>$(ProjectDirectory)\release-key\Google.ProtocolBuffers.snk</SigningKey>
+
+ <!--Tool Paths-->
+ <HgTool>hg.exe</HgTool>
+ <Python>C:\Python25\python.exe</Python>
+ <SnTool>$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)Bin\sn.exe</SnTool>
+ <StampVer>$(LibDirectory)\StampVersion.exe</StampVer>
+ <ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath>
+ <NuGet>$(LibDirectory)\NuGet.exe</NuGet>
+ <ProtogenExePath>$(BuildOutputDirectory)\tools\protogen.exe</ProtogenExePath>
+ </PropertyGroup>
+
+ <!-- Import user settings -->
+ <Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')" />
+
+ <!-- Files -->
+ <ItemGroup>
+ </ItemGroup>
+
+ <!-- Tasks -->
+
+ <Target Name="_Prerequisites" DependsOnTargets="_CheckEnvironment;_ReadVersion" />
+
+ <Target Name="_Clean">
+ <MSBuild Properties="Configuration=Debug;" Targets="Clean" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="Configuration=Release;" Targets="Clean" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <MakeDir Directories="$(BuildOutputDirectory)" />
+ </Target>
+
+ <Target Name="_WriteUserConfig">
+ <ItemGroup>
+ <Lines Include="<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>" />
+ <Lines Include=" <PropertyGroup>"/>
+ <Lines Include=" <GoogleUsername> (Enter your google-code user/password here) </GoogleUsername>"/>
+ <Lines Include=" <GooglePassword></GooglePassword>"/>
+ <Lines Include=" </PropertyGroup>" />
+ <Lines Include="</Project>" />
+ </ItemGroup>
+ <WriteLinesToFile File="$(MSBuildProjectFullPath).user" Lines="@(Lines)" Overwrite="true" Condition="!Exists('$(MSBuildProjectFullPath).user')" />
+ <Exec Command="Notepad.exe $(MSBuildProjectFullPath).user" />
+ </Target>
+
+ <Target Name="_CheckEnvironment">
+ <!-- Require google credentials -->
+ <CallTarget Targets="_WriteUserConfig" Condition=" '$(GooglePassword)' == '' " />
+ <Error Text="Restart after you verify your credentials in $(MSBuildProjectFullPath).user" Condition=" '$(GooglePassword)' == '' " />
+ <!-- Require Win7.0A SDK to verify strong-name -->
+ <Error Text="Unable to locate Win7SDK Tools: $(SnTool)" Condition="!Exists($(SnTool))" />
+ <!-- Require Python 2.5 installed -->
+ <!-- Error Text="Unable to locate Python 2.5: $(Python)" Condition="!Exists($(Python))" / -->
+ <!-- Require production signing key -->
+ <Exec Command="$(HgTool) clone https://bitbucket.org/rknapp/protobuf-csharp-port-keyfile $(ProjectDirectory)\release-key" Condition="!Exists('$(SigningKey)')" />
+ <Error Text="Unable to locate release signing key: $(SigningKey)" Condition="!Exists($(SigningKey))" />
+ </Target>
+
+ <Target Name="_ReadVersion" Condition=" '$(VersionLabel)' == '' ">
+ <Exec Command="$(HgTool) log -l 1 --template "{rev}" > "$(BuildTempDirectory)\revision.txt""></Exec>
+ <ReadLinesFromFile File="$(BuildTempDirectory)\revision.txt">
+ <Output TaskParameter="Lines" PropertyName="VersionRevision"/>
+ </ReadLinesFromFile>
+
+ <PropertyGroup>
+ <VersionLabel>$(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)</VersionLabel>
+ </PropertyGroup>
+
+ <Message Text="Building version $(VersionLabel)" Importance="high" />
+ </Target>
+
+ <Target Name="_StampVersion" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(StampVer) /major:$(VersionMajor) /minor:$(VersionMinor) /build:$(VersionBuild) /revision:$(VersionRevision)" WorkingDirectory="$(SourceDirectory)" />
+ <Exec Command="FIND "$(VersionLabel)" ProtocolBuffers\Properties\AssemblyInfo.cs" WorkingDirectory="$(SourceDirectory)" />
+ </Target>
+
+ <Target Name="_GenerateSource" DependsOnTargets="_Prerequisites">
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="GenerateProjects;BuildTools;GenerateSource" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <Exec Command=""$(SnTool)" -T "$(ProtogenExePath)" > signkey.txt" WorkingDirectory="$(BuildTempDirectory)" />
+ <!-- Make sure we are signing with the correct key -->
+ <Exec Command="FIND "55f7125234beb589" signkey.txt" WorkingDirectory="$(BuildTempDirectory)" />
+ </Target>
+
+ <Target Name="_Build" DependsOnTargets="_Prerequisites">
+ <!-- Release Build -->
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="_CompileAll" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey);PackageName=$(PackagePrefix)$(VersionLabel)-release" Targets="GeneratePackage" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <!-- Debug Build -->
+ <MSBuild Condition=" '$(PublishDebug)' == 'true' " Properties="Configuration=Debug;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="_CompileAll" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <MSBuild Condition=" '$(PublishDebug)' == 'true' " Properties="Configuration=Debug;AssemblyOriginatorKeyFile=$(SigningKey);PackageName=$(PackagePrefix)$(VersionLabel)-full" Targets="GeneratePackage" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ </Target>
+
+ <Target Name="_HgPack" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) archive $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-source.zip" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_HgLabel" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) commit -m "version $(VersionLabel)"" WorkingDirectory="$(ProjectDirectory)" />
+ <Exec Command="$(HgTool) tag $(VersionLabel)" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_HgPush" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) push" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_PkgPush" DependsOnTargets="_Prerequisites">
+ <PropertyGroup>
+ <UploadPackage>$(Python) "$(MSBuildProjectDirectory)\googlecode_upload.py" --project protobuf-csharp-port --user "$(GoogleUsername)" --password "$(GooglePassword)"</UploadPackage>
+
+ <SourcePackage>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-source.zip</SourcePackage>
+ <ReleasePackageBin>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-binaries.zip</ReleasePackageBin>
+ <ReleasePackageSyb>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-symbols.zip</ReleasePackageSyb>
+ <DebugPackageBin>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-binaries.zip</DebugPackageBin>
+ <DebugPackageSyb>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-symbols.zip</DebugPackageSyb>
+ </PropertyGroup>
+
+ <Error Condition="!Exists('$(SourcePackage)')" Text="File not found: $(SourcePackage)" />
+ <Error Condition="!Exists('$(ReleasePackageBin)')" Text="File not found: $(ReleasePackageBin)" />
+ <Error Condition="!Exists('$(ReleasePackageSyb)')" Text="File not found: $(ReleasePackageSyb)" />
+ <Error Condition="'$(PublishDebug)' == 'true' And !Exists('$(DebugPackageBin)')" Text="File not found: $(DebugPackageBin)" />
+ <Error Condition="'$(PublishDebug)' == 'true' And !Exists('$(DebugPackageSyb)')" Text="File not found: $(DebugPackageSyb)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Source,Featured --summary "Version $(VersionLabel) source" $(SourcePackage)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary "Version $(VersionLabel) release binaries only" $(ReleasePackageBin)" />
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary "Version $(VersionLabel) release binaries and symbols" $(ReleasePackageSyb)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)" Condition=" '$(PublishDebug)' == 'true' "
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary "Version $(VersionLabel) all binaries" $(DebugPackageBin)" />
+ <Exec WorkingDirectory="$(ProjectDirectory)" Condition=" '$(PublishDebug)' == 'true' "
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary "Version $(VersionLabel) all binaries and symbols" $(DebugPackageSyb)" />
+ </Target>
+
+ <Target Name="_NugetPack" DependsOnTargets="_Prerequisites">
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) update -self" />
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) pack Google.ProtocolBuffers.nuspec -Symbols -Version $(VersionLabel) -NoPackageAnalysis -OutputDirectory $(BuildTempDirectory)" />
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) pack Google.ProtocolBuffersLite.nuspec -Symbols -Version $(VersionLabel) -NoPackageAnalysis -OutputDirectory $(BuildTempDirectory)" />
+ </Target>
+
+ <Target Name="_NugetPush" DependsOnTargets="_Prerequisites">
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffers.$(VersionLabel).nupkg" ContinueOnError="true" />
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffersLite.$(VersionLabel).nupkg" ContinueOnError="true" />
+
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffers.$(VersionLabel).symbols.nupkg" ContinueOnError="true" />
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffersLite.$(VersionLabel).symbols.nupkg" ContinueOnError="true" />
+ </Target>
+
+</Project>
|