From 1cd8cfbc0f6323264be5995d55349e8b32ce2af3 Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Wed, 6 Oct 2010 14:56:11 +0000 Subject: [PATCH] Converted into an actual commandline tool to avoid using custom tasks. --- .../Build.UpdateVersion.csproj | 72 ++++++--------- Source/Build.UpdateVersion/Program.cs | 90 +++++++++++++++++++ 2 files changed, 119 insertions(+), 43 deletions(-) create mode 100644 Source/Build.UpdateVersion/Program.cs diff --git a/Source/Build.UpdateVersion/Build.UpdateVersion.csproj b/Source/Build.UpdateVersion/Build.UpdateVersion.csproj index 4cc47d00..7d328718 100644 --- a/Source/Build.UpdateVersion/Build.UpdateVersion.csproj +++ b/Source/Build.UpdateVersion/Build.UpdateVersion.csproj @@ -1,59 +1,45 @@  - . + ..\..\Binaries\OpenTK\Release + TRACE + true - . + ..\..\Binaries\OpenTK\Debug + TRACE;DEBUG + false - . + ..\..\Binaries\OpenTK\Release + true + TRACE - . + ..\..\Binaries\OpenTK\Release + true + TRACE {75DC22B1-113F-4A66-96B9-2FF8208C10E8} + Build + Exe + v2.0 - - + + + + + + + + + + + - - - - + + - - - - - - + \ No newline at end of file diff --git a/Source/Build.UpdateVersion/Program.cs b/Source/Build.UpdateVersion/Program.cs new file mode 100644 index 00000000..ccbbaf3e --- /dev/null +++ b/Source/Build.UpdateVersion/Program.cs @@ -0,0 +1,90 @@ +#region License +// +// The Open Toolkit Library License +// +// Copyright (c) 2006 - 2010 the Open Toolkit library. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do +// so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +#endregion + +using System; +using System.IO; + +namespace Build +{ + class Program + { + const string Major = "1"; + const string Minor = "0"; + static string Version = "{0}.{1}.{2}"; + + public static void Main() + { + GenerateVersionInfo("../../Version.txt"); + GenerateAssemblyInfo("../GlobalAssemblyInfo.cs"); + } + + static void GenerateVersionInfo(string file) + { + // If the file does not exist, create it. + if (System.IO.File.Exists(file)) + { + string[] lines = System.IO.File.ReadAllLines(file); + if (lines.Length > 0 && !String.IsNullOrEmpty(lines[0])) + { + Version = lines[0]; + } + } + else + { + // Build number is defined as the number of days since 1/1/2010. + // Revision number is defined as the fraction of the current day, expressed in seconds. + double timespan = DateTime.UtcNow.Subtract(new DateTime(2010, 1, 1)).TotalDays; + string build = ((int)timespan).ToString(); + string revision = ((int)((timespan - (int)timespan) * UInt16.MaxValue)).ToString(); + Version = String.Format("{0}.{1}.{2}.{3}", Major, Minor, build, revision); + System.IO.File.WriteAllLines(file, new string[] { Version }); + } + } + + static void GenerateAssemblyInfo(string file) + { + File.WriteAllLines(file, new string[] + { + "// This file is auto-generated through Source/Build.Tasks/GenerateAssemblyInfo.cs.", + "// Do not edit by hand!", + "", + "using System;", + "using System.Reflection;", + "using System.Resources;", + "using System.Runtime.CompilerServices;", + "using System.Runtime.InteropServices;", + "", + "[assembly: AssemblyCompany(\"The Open Toolkit Library\")]", + "[assembly: AssemblyProduct(\"The Open Toolkit Library\")]", + "[assembly: AssemblyCopyright(\"Copyright © 2006 - 2010 the Open Toolkit Library\")]", + "[assembly: AssemblyTrademark(\"OpenTK\")]", + String.Format("[assembly: AssemblyVersion(\"{0}.{1}.0.0\")]", Major, Minor), + String.Format("[assembly: AssemblyFileVersion(\"{0}\")]", Version) + }); + } + } +}