mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-23 19:35:29 +00:00
Removed Build.UpdateVersion project
This commit is contained in:
parent
88ba7a3655
commit
cd9a7fe780
|
@ -1,75 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ProjectGuid>{75DC22B1-113F-4A66-96B9-2FF8208C10E8}</ProjectGuid>
|
|
||||||
<AssemblyName>Build.UpdateVersion</AssemblyName>
|
|
||||||
<RootNamespace>Build.UpdateVersion</RootNamespace>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProductVersion>10.0.0</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Documentation' ">
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Release\</OutputPath>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
|
||||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
|
||||||
<DebugSymbols>True</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Debug\</OutputPath>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Release\</OutputPath>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Nsis' ">
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Release\</OutputPath>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<PreBuildEvent>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PostBuildEvent>
|
|
||||||
</PostBuildEvent>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugMinimal|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Debug\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseMinimal|AnyCPU' ">
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>..\..\Binaries\Tools\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Target Name="BeforeBuild">
|
|
||||||
<Delete Files="..\..\Timestamp.txt" />
|
|
||||||
<Delete Files="..\..\Version.txt" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="AfterBuild">
|
|
||||||
<Exec Command="$(OutputPath)\Build.UpdateVersion.exe" Condition="$(OS) == 'Windows_NT'" />
|
|
||||||
<Exec Command="mono $(OutputPath)\Build.UpdateVersion.exe" Condition="$(OS) != 'Windows_NT'" />
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
|
@ -1,191 +0,0 @@
|
||||||
#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.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace Build.UpdateVersion
|
|
||||||
{
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
const string Major = "1";
|
|
||||||
const string Minor = "2";
|
|
||||||
|
|
||||||
static string RootDirectory;
|
|
||||||
static string SourceDirectory;
|
|
||||||
|
|
||||||
public static void Main()
|
|
||||||
{
|
|
||||||
string wdir = Environment.CurrentDirectory;
|
|
||||||
if (Directory.GetParent(wdir).Name == "Source")
|
|
||||||
{
|
|
||||||
// Running through msbuild inside Source/Build.UpdateVersion/
|
|
||||||
RootDirectory = "../..";
|
|
||||||
SourceDirectory = "..";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Running manually inside Binaries/OpenTK/[Debug|Release]/
|
|
||||||
RootDirectory = "../../..";
|
|
||||||
SourceDirectory = "../../../Source";
|
|
||||||
}
|
|
||||||
|
|
||||||
DateTime now = DateTime.UtcNow;
|
|
||||||
string timestamp = now.ToString("u").Split(' ')[0];
|
|
||||||
// Build number is defined as the number of days since 1/1/2010.
|
|
||||||
double timespan = now.Subtract(new DateTime(2010, 1, 1)).TotalDays;
|
|
||||||
string build = ((int)timespan).ToString();
|
|
||||||
// Revision number is defined as the number of (git/svn/bzr) commits,
|
|
||||||
// or as the fraction of the current day, expressed in seconds, in case the
|
|
||||||
// working directory is not under source control.
|
|
||||||
string revision = RetrieveRevisionNumber(now);
|
|
||||||
|
|
||||||
string major = Major;
|
|
||||||
string minor = Minor;
|
|
||||||
|
|
||||||
// Version is defined as {Major}.{Minor}.{Build}.{Revision}
|
|
||||||
string version = String.Format("{0}.{1}.{2}.{3}-pre", major, minor, build, revision);
|
|
||||||
|
|
||||||
Console.WriteLine("API compatibility key: {0}.{1}", major, minor);
|
|
||||||
Console.WriteLine("Build date: {0}", timestamp);
|
|
||||||
|
|
||||||
GenerateTimestamp(timestamp, Path.Combine(RootDirectory, "Timestamp.txt"));
|
|
||||||
GenerateVersion(version, Path.Combine(RootDirectory, "Version.txt"));
|
|
||||||
GenerateAssemblyInfo(major, minor, version, Path.Combine(SourceDirectory, "GlobalAssemblyInfo.cs"));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GenerateTimestamp(string timestamp, string file)
|
|
||||||
{
|
|
||||||
System.IO.File.WriteAllLines(file, new string[] { timestamp });
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GenerateVersion(string version, string file)
|
|
||||||
{
|
|
||||||
File.WriteAllLines(file, new string[] { version });
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GenerateAssemblyInfo(string major, string minor, string version, 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 - 2014 the Open Toolkit Library\")]",
|
|
||||||
"[assembly: AssemblyTrademark(\"OpenTK\")]",
|
|
||||||
String.Format("[assembly: AssemblyVersion(\"{0}.{1}.0.0\")]", major, minor),
|
|
||||||
String.Format("[assembly: AssemblyFileVersion(\"{0}\")]", version),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static string RetrieveRevisionNumber(DateTime now)
|
|
||||||
{
|
|
||||||
double timespan = now.Subtract(new DateTime(2010, 1, 1)).TotalDays;
|
|
||||||
string revision = RetrieveGitRevision() ?? RetrieveSvnRevision() ?? RetrieveBzrRevision() ?? "0";
|
|
||||||
revision = revision.Trim();
|
|
||||||
return revision;
|
|
||||||
}
|
|
||||||
|
|
||||||
static string RetrieveSeconds(double timespan)
|
|
||||||
{
|
|
||||||
string revision = ((int)((timespan - (int)timespan) * UInt16.MaxValue)).ToString();
|
|
||||||
return revision;
|
|
||||||
}
|
|
||||||
|
|
||||||
static string RetrieveGitRevision()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string output = RunProcess("git", "rev-list HEAD --count", RootDirectory);
|
|
||||||
return output.Trim(' ', '\n');
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Print("Failed to retrieve git revision. Error: {0}", e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static string RetrieveSvnRevision()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string output = RunProcess("svn", "info", RootDirectory);
|
|
||||||
|
|
||||||
const string RevisionText = "Revision: ";
|
|
||||||
int index = output.IndexOf(RevisionText);
|
|
||||||
if (index > -1)
|
|
||||||
return output.Substring(index + RevisionText.Length, 5)
|
|
||||||
.Replace('\r', ' ').Replace('\n', ' ').Trim();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Print("Failed to retrieve svn revision. Error: {0}", e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
static string RetrieveBzrRevision()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string output = RunProcess("bzr", "revno", RootDirectory);
|
|
||||||
return output != null && !output.StartsWith("bzr") ? output : null;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Print("Failed to retrieve svn revision. Error: {0}", e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
static string RunProcess(string cmd, string args, string wdir)
|
|
||||||
{
|
|
||||||
ProcessStartInfo info = new ProcessStartInfo(cmd, args);
|
|
||||||
info.WorkingDirectory = wdir;
|
|
||||||
info.RedirectStandardOutput = true;
|
|
||||||
info.RedirectStandardError = true;
|
|
||||||
info.UseShellExecute = false;
|
|
||||||
Process p = new Process();
|
|
||||||
p.StartInfo = info;
|
|
||||||
p.Start();
|
|
||||||
p.WaitForExit();
|
|
||||||
string output = p.StandardOutput.ReadToEnd();
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue