From 2de3464d305e877002222766c34952d1327b1ddd Mon Sep 17 00:00:00 2001 From: codeimp <codeimp@e0d998f2-2e9b-42fe-843d-47128df60a06> Date: Mon, 27 Apr 2009 09:18:35 +0000 Subject: [PATCH] @ created a release build batch file and removed the "with revision lookup" project configs --- Builder.sln | 36 ------- MakeRelease.bat | 93 ++++++++++++++++++ MakeRevisionsLog.bat | 1 - Setup/builder2_setup.iss | 2 +- Setup/builder2debug_setup.iss | 2 +- Source/Core/Builder.csproj | 30 +----- .../Plugins/BuilderModes/BuilderModes.csproj | 26 +---- Source/Plugins/Statistics/Statistics.csproj | 17 ---- VersionFromSVN.exe | Bin 28672 -> 15360 bytes 9 files changed, 103 insertions(+), 104 deletions(-) create mode 100644 MakeRelease.bat delete mode 100644 MakeRevisionsLog.bat diff --git a/Builder.sln b/Builder.sln index 981c12e93..e0e90cb98 100644 --- a/Builder.sln +++ b/Builder.sln @@ -9,75 +9,39 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Statistics", "Source\Plugin EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug with revision lookup|Any CPU = Debug with revision lookup|Any CPU - Debug with revision lookup|Mixed Platforms = Debug with revision lookup|Mixed Platforms - Debug with revision lookup|x86 = Debug with revision lookup|x86 Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms Debug|x86 = Debug|x86 - Release with revision lookup|Any CPU = Release with revision lookup|Any CPU - Release with revision lookup|Mixed Platforms = Release with revision lookup|Mixed Platforms - Release with revision lookup|x86 = Release with revision lookup|x86 Release|Any CPU = Release|Any CPU Release|Mixed Platforms = Release|Mixed Platforms Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug with revision lookup|Any CPU.ActiveCfg = Debug with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug with revision lookup|Mixed Platforms.ActiveCfg = Debug with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug with revision lookup|Mixed Platforms.Build.0 = Debug with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug with revision lookup|x86.ActiveCfg = Debug with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug with revision lookup|x86.Build.0 = Debug with revision lookup|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Any CPU.ActiveCfg = Debug|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Mixed Platforms.Build.0 = Debug|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x86.ActiveCfg = Debug|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|x86.Build.0 = Debug|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release with revision lookup|Any CPU.ActiveCfg = Release with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release with revision lookup|Mixed Platforms.ActiveCfg = Release with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release with revision lookup|Mixed Platforms.Build.0 = Release with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release with revision lookup|x86.ActiveCfg = Release with revision lookup|x86 - {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release with revision lookup|x86.Build.0 = Release with revision lookup|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.ActiveCfg = Release|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Mixed Platforms.ActiveCfg = Release|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Mixed Platforms.Build.0 = Release|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x86.ActiveCfg = Release|x86 {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|x86.Build.0 = Release|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug with revision lookup|Any CPU.ActiveCfg = Debug with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug with revision lookup|Mixed Platforms.ActiveCfg = Debug with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug with revision lookup|Mixed Platforms.Build.0 = Debug with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug with revision lookup|x86.ActiveCfg = Debug with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug with revision lookup|x86.Build.0 = Debug with revision lookup|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|Any CPU.ActiveCfg = Debug|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|Mixed Platforms.Build.0 = Debug|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x86.ActiveCfg = Debug|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|x86.Build.0 = Debug|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release with revision lookup|Any CPU.ActiveCfg = Release with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release with revision lookup|Mixed Platforms.ActiveCfg = Release with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release with revision lookup|Mixed Platforms.Build.0 = Release with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release with revision lookup|x86.ActiveCfg = Release with revision lookup|x86 - {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release with revision lookup|x86.Build.0 = Release with revision lookup|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|Any CPU.ActiveCfg = Release|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|Mixed Platforms.ActiveCfg = Release|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|Mixed Platforms.Build.0 = Release|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x86.ActiveCfg = Release|x86 {B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|x86.Build.0 = Release|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug with revision lookup|Any CPU.ActiveCfg = Debug with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug with revision lookup|Mixed Platforms.ActiveCfg = Debug with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug with revision lookup|Mixed Platforms.Build.0 = Debug with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug with revision lookup|x86.ActiveCfg = Debug with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug with revision lookup|x86.Build.0 = Debug with revision lookup|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug|Any CPU.ActiveCfg = Debug|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug|Mixed Platforms.Build.0 = Debug|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug|x86.ActiveCfg = Debug|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Debug|x86.Build.0 = Debug|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release with revision lookup|Any CPU.ActiveCfg = Release with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release with revision lookup|Mixed Platforms.ActiveCfg = Release with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release with revision lookup|Mixed Platforms.Build.0 = Release with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release with revision lookup|x86.ActiveCfg = Release with revision lookup|x86 - {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release with revision lookup|x86.Build.0 = Release with revision lookup|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release|Any CPU.ActiveCfg = Release|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release|Mixed Platforms.ActiveCfg = Release|x86 {FBC0A503-9152-4BE2-9B5C-128FFD0B0D3F}.Release|Mixed Platforms.Build.0 = Release|x86 diff --git a/MakeRelease.bat b/MakeRelease.bat new file mode 100644 index 000000000..76aa16e0a --- /dev/null +++ b/MakeRelease.bat @@ -0,0 +1,93 @@ +@ECHO OFF + +ECHO. +ECHO. This build script requires the following software to be installed: +ECHO. - Subversion command-line client +ECHO. - Microsoft Visual Studio 2008 +ECHO. - Microsoft HTML Help compiler +ECHO. - Inno Setup 5 +ECHO. +ECHO. You have to commit your work before using this script. +ECHO. +ECHO. +PAUSE +ECHO. + +CALL "%programfiles%\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat" + +MKDIR "Release" + +svn revert "Source\Core\Properties\AssemblyInfo.cs" +svn revert "Source\Plugins\BuilderModes\Properties\AssemblyInfo.cs" + +ECHO. +ECHO Writing SVN log file... +ECHO. +IF EXIST "Release\log.xml" DEL /F /Q "Release\log.xml" > NUL +svn log --xml -r HEAD:1 > "Release\log.xml" +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL +IF NOT EXIST "Release\log.xml" GOTO FILEFAIL + +ECHO. +ECHO Compiling HTML Help file... +ECHO. +IF EXIST "Build\Refmanual.chm" DEL /F /Q "Build\Refmanual.chm" > NUL +"%programfiles%\HTML Help Workshop\hhc" Help\Refmanual.hhp +IF %ERRORLEVEL% NEQ 1 GOTO ERRORFAIL +IF NOT EXIST "Build\Refmanual.chm" GOTO FAIL + +ECHO. +ECHO Looking up current repository revision numbers... +ECHO. +VersionFromSVN.exe "Source\Core\Properties\AssemblyInfo.cs" +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL +VersionFromSVN.exe "Source\Plugins\BuilderModes\Properties\AssemblyInfo.cs" +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL + +ECHO. +ECHO Compiling Doom Builder core... +ECHO. +IF EXIST "Build\Builder.exe" DEL /F /Q "Build\Builder.exe" > NUL +msbuild "Source\Core\Builder.csproj" /t:Rebuild /p:Configuration=Release /p:Platform=x86 /v:minimal +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL +IF NOT EXIST "Build\Builder.exe" GOTO FILEFAIL + +ECHO. +ECHO Compiling Doom Builder Modes plugin... +ECHO. +IF EXIST "Build\Plugins\BuilderModes.dll" DEL /F /Q "Build\Plugins\BuilderModes.dll" > NUL +msbuild "Source\Plugins\BuilderModes\BuilderModes.csproj" /t:Rebuild /p:Configuration=Release /p:Platform=x86 /v:minimal +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL +IF NOT EXIST "Build\Plugins\BuilderModes.dll" GOTO FILEFAIL + +ECHO. +ECHO Building Setup Installer... +ECHO. +IF EXIST "Release\builder2_setup.exe" DEL /F /Q "Release\builder2_setup.exe" > NUL +"%programfiles%\Inno Setup 5\iscc.exe" "Setup\builder2_setup.iss" +IF %ERRORLEVEL% NEQ 0 GOTO ERRORFAIL +IF NOT EXIST "Release\builder2_setup.exe" GOTO FILEFAIL + +svn revert "Source\Core\Properties\AssemblyInfo.cs" +svn revert "Source\Plugins\BuilderModes\Properties\AssemblyInfo.cs" + +ECHO. +ECHO. BUILD DONE ! +ECHO. +GOTO LEAVE + +:ERRORFAIL +ECHO. +ECHO. BUILD FAILED (Tool returned error) +ECHO. +PAUSE +GOTO LEAVE + +:FILEFAIL +ECHO. +ECHO. BUILD FAILED (Output file was not built) +ECHO. +PAUSE +GOTO LEAVE + +:LEAVE diff --git a/MakeRevisionsLog.bat b/MakeRevisionsLog.bat deleted file mode 100644 index a2f2aee40..000000000 --- a/MakeRevisionsLog.bat +++ /dev/null @@ -1 +0,0 @@ -svn log --xml -r HEAD:1 > log.xml diff --git a/Setup/builder2_setup.iss b/Setup/builder2_setup.iss index 1ec16fc0f..e35910fad 100644 --- a/Setup/builder2_setup.iss +++ b/Setup/builder2_setup.iss @@ -12,7 +12,7 @@ DefaultDirName={pf}\Doom Builder 2 DefaultGroupName=Doom Builder AllowNoIcons=true InfoBeforeFile=F:\Projects\Doom Builder\Setup\disclaimer.txt -OutputDir=F:\Projects\Doom Builder\Setup +OutputDir=F:\Projects\Doom Builder\Release OutputBaseFilename=builder2_setup Compression=lzma/ultra64 SolidCompression=true diff --git a/Setup/builder2debug_setup.iss b/Setup/builder2debug_setup.iss index 4874fa171..7be01c280 100644 --- a/Setup/builder2debug_setup.iss +++ b/Setup/builder2debug_setup.iss @@ -12,7 +12,7 @@ DefaultDirName={pf}\Doom Builder 2 DefaultGroupName=Doom Builder AllowNoIcons=true InfoBeforeFile=F:\Projects\Doom Builder\Setup\disclaimer.txt -OutputDir=F:\Projects\Doom Builder\Setup +OutputDir=F:\Projects\Doom Builder\Release OutputBaseFilename=builder2_setup Compression=lzma/ultra64 SolidCompression=true diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj index f94e3dc1e..f1e464e68 100644 --- a/Source/Core/Builder.csproj +++ b/Source/Core/Builder.csproj @@ -43,26 +43,6 @@ <ErrorReport>prompt</ErrorReport> <DocumentationFile>..\..\Build\Builder.xml</DocumentationFile> </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug with revision lookup|x86' "> - <DebugSymbols>true</DebugSymbols> - <OutputPath>..\..\Build\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DocumentationFile>..\..\Build\Builder.xml</DocumentationFile> - <DebugType>full</DebugType> - <PlatformTarget>x86</PlatformTarget> - <UseVSHostingProcess>false</UseVSHostingProcess> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release with revision lookup|x86' "> - <OutputPath>..\..\Build\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DocumentationFile>..\..\Build\Builder.xml</DocumentationFile> - <Optimize>true</Optimize> - <PlatformTarget>x86</PlatformTarget> - <UseVSHostingProcess>false</UseVSHostingProcess> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. @@ -883,11 +863,9 @@ </EmbeddedResource> </ItemGroup> <PropertyGroup> - <PreBuildEvent>"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -F 0 -M "Debug" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -F 0 -M "Release" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Release with revision lookup" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Debug with revision lookup" "$(ConfigurationName)"</PreBuildEvent> - <PostBuildEvent>"$(SolutionDir)VersionFromSVN.exe" -R "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Release with revision lookup" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" -R "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Debug with revision lookup" "$(ConfigurationName)"</PostBuildEvent> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/BuilderModes.csproj b/Source/Plugins/BuilderModes/BuilderModes.csproj index 169016f01..b326c5510 100644 --- a/Source/Plugins/BuilderModes/BuilderModes.csproj +++ b/Source/Plugins/BuilderModes/BuilderModes.csproj @@ -34,22 +34,6 @@ <PlatformTarget>x86</PlatformTarget> <ErrorReport>prompt</ErrorReport> </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug with revision lookup|x86' "> - <DebugSymbols>true</DebugSymbols> - <OutputPath>..\..\..\Build\Plugins\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DebugType>full</DebugType> - <PlatformTarget>x86</PlatformTarget> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release with revision lookup|x86' "> - <OutputPath>..\..\..\Build\Plugins\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <Optimize>true</Optimize> - <PlatformTarget>x86</PlatformTarget> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core"> @@ -284,11 +268,9 @@ </Target> --> <PropertyGroup> - <PreBuildEvent>"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -F 0 -M "Debug" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -F 0 -M "Release" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Release with revision lookup" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Debug with revision lookup" "$(ConfigurationName)"</PreBuildEvent> - <PostBuildEvent>"$(SolutionDir)VersionFromSVN.exe" -R "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Release with revision lookup" "$(ConfigurationName)" -"$(SolutionDir)VersionFromSVN.exe" -R "$(ProjectDir)Properties\AssemblyInfo.cs" -M "Debug with revision lookup" "$(ConfigurationName)"</PostBuildEvent> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file diff --git a/Source/Plugins/Statistics/Statistics.csproj b/Source/Plugins/Statistics/Statistics.csproj index 91a71561c..52a7e6db8 100644 --- a/Source/Plugins/Statistics/Statistics.csproj +++ b/Source/Plugins/Statistics/Statistics.csproj @@ -30,23 +30,6 @@ <PlatformTarget>x86</PlatformTarget> <ErrorReport>prompt</ErrorReport> </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug with revision lookup|x86' "> - <DebugSymbols>true</DebugSymbols> - <OutputPath>..\..\..\Build\Plugins\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DebugType>full</DebugType> - <PlatformTarget>x86</PlatformTarget> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release with revision lookup|x86' "> - <OutputPath>..\..\..\Build\Plugins\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <Optimize>true</Optimize> - <DebugType>pdbonly</DebugType> - <PlatformTarget>x86</PlatformTarget> - <ErrorReport>prompt</ErrorReport> - </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core"> diff --git a/VersionFromSVN.exe b/VersionFromSVN.exe index d239e91b8aeb1d5465b7c090655028735a92b49d..be90985f543341d453982e0cf78f0e53899d6756 100644 GIT binary patch delta 4905 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 Yn*;^_O?AHu2L~UEbiQU}RD3G_3+(Qv@Bjb+ delta 4529 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 -- GitLab