Property changes on: . ___________________________________________________________________ Modified: svn:ignore - Binaries OpenTK.suo QuickStart.suo Generator.sln OpenTK.sln QuickStart.sln Generator.suo Build.pdb Build.suo ChangeLog *.snk QuickStart.Prebuild.xml + *.snk Binaries Build.pdb Build.suo BuildMSI.proj ChangeLog Generator.sln Generator.suo Help Installer OpenTK.sln OpenTK.suo QuickStart.Prebuild.xml QuickStart.sln QuickStart.suo Index: Build.exe =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: Source/Build/Build.cs =================================================================== --- Source/Build/Build.cs (revision 2553) +++ Source/Build/Build.cs (working copy) @@ -19,22 +19,22 @@ namespace OpenTK.Build { - class Project - { - static string RootPath = Directory.GetCurrentDirectory(); - static string SourcePath = Path.Combine(RootPath, "Source"); + class Project + { + static string RootPath = Directory.GetCurrentDirectory(); + static string SourcePath = Path.Combine(RootPath, "Source"); - const string bindings = "Generator.Prebuild.xml"; - const string opentk = "OpenTK.Prebuild.xml"; - const string quickstart = "QuickStart.Prebuild.xml"; + const string bindings = "Generator.Prebuild.xml"; + const string opentk = "OpenTK.Prebuild.xml"; + const string quickstart = "QuickStart.Prebuild.xml"; + const string buildMSI = "BuildMSI.proj"; + const string keyfile = "OpenTK.snk"; // Do not change - const string keyfile = "OpenTK.snk"; // Do not change + const string Usage = @"Usage: Build.exe target + target: one of vs, vs9, msi, clean, distclean, help"; - const string Usage = @"Usage: Build.exe target - target: one of vs, vs9, clean, distclean, help"; + const string Help = Usage + @" - const string Help = Usage + @" - Available targets: vs: Create Visual Studio 2005 project files. vs9: Create Visual Studio 2008 project files. @@ -49,361 +49,385 @@ exist the resulting assemblies will not be signed. "; - static readonly Assembly Prebuild = Assembly.Load(Resources.Prebuild); + static readonly Assembly Prebuild = Assembly.Load(Resources.Prebuild); - enum BuildTarget - { - None = 0, - VS2005, - VS2008, - Mono, - Net, - Clean, - DistClean, - } + enum BuildTarget + { + None = 0, + VS2005, + VS2008, + MSI, + Mono, + Net, + Clean, + DistClean, + } - static void PrintUsage() - { - Console.WriteLine(Usage); - } + static void PrintUsage() + { + Console.WriteLine(Usage); + } - static void PrintHelp() - { - Console.WriteLine(Help); - } + static void PrintHelp() + { + Console.WriteLine(Help); + } - static void Main(string[] args) - { - if (args.Length == 0) - { - PrintUsage(); + static void Main(string[] args) + { + if (args.Length == 0) + { + PrintUsage(); - args = new string[2] { String.Empty, String.Empty }; - Console.Write("Select build target: "); - args[0] = Console.ReadLine(); - if (args[0] == String.Empty) - args[0] = "vs"; - } + args = new string[2] { String.Empty, String.Empty }; + Console.Write("Select build target: "); + args[0] = Console.ReadLine(); + if (args[0] == String.Empty) + args[0] = "vs"; + } - try - { - PreparePrebuildFiles(); - PrepareEnvironment(); + try + { + bool hasKeyFile = CheckKeyFile(keyfile); + PreparePrebuildFiles(hasKeyFile); + PrepareEnvironment(); - BuildTarget target = SelectTarget(args); - if (target != BuildTarget.None) - { - Build(target); - foreach (string file in Directory.GetFiles("Source", "*.csproj", SearchOption.AllDirectories)) - ApplyMonoDevelopWorkarounds(file); - } - } - finally - { - // Wait until Prebuild releases the input files. - System.Threading.Thread.Sleep(2000); - DeletePrebuildFiles(); - } + BuildTarget target = SelectTarget(args); + if (target != BuildTarget.None) + { + Build(target, hasKeyFile); + foreach (string file in Directory.GetFiles("Source", "*.csproj", SearchOption.AllDirectories)) + ApplyMonoDevelopWorkarounds(file); + } + } + finally + { + // Wait until Prebuild releases the input files. + System.Threading.Thread.Sleep(2000); + DeletePrebuildFiles(); + } - WaitForExit(); - } + WaitForExit(); + } - private static void PrepareEnvironment() - { - // Workaroung for nant on x64 windows (safe for other platforms too, as this affects only the current process). - Environment.SetEnvironmentVariable("CommonProgramFiles(x86)", String.Empty, EnvironmentVariableTarget.Process); - Environment.SetEnvironmentVariable("ProgramFiles(x86)", String.Empty, EnvironmentVariableTarget.Process); - } + private static void PrepareEnvironment() + { + // Workaroung for nant on x64 windows (safe for other platforms too, as this affects only the current process). + Environment.SetEnvironmentVariable("CommonProgramFiles(x86)", String.Empty, EnvironmentVariableTarget.Process); + Environment.SetEnvironmentVariable("ProgramFiles(x86)", String.Empty, EnvironmentVariableTarget.Process); + } + + private static void PreparePrebuildFiles(bool hasKeyFile) + { + //string sign_assembly = CheckKeyFile(keyfile) ? "SIGN_ASSEMBLY" : ""; + string sign_assembly = hasKeyFile ? @"" + keyfile + @"" : ""; + if (sign_assembly != "") + DistributeKeyFile(keyfile); - private static void PreparePrebuildFiles() - { - //string sign_assembly = CheckKeyFile(keyfile) ? "SIGN_ASSEMBLY" : ""; - string sign_assembly = CheckKeyFile(keyfile) ? @"" + keyfile + @"" : ""; - if (sign_assembly != "") - DistributeKeyFile(keyfile); + File.WriteAllText(bindings, String.Format(Resources.Generator, sign_assembly)); + File.WriteAllText(opentk, String.Format(Resources.OpenTK, sign_assembly)); + File.WriteAllText(quickstart, String.Format(Resources.QuickStart, sign_assembly)); + } - File.WriteAllText(bindings, String.Format(Resources.Generator, sign_assembly)); - File.WriteAllText(opentk, String.Format(Resources.OpenTK, sign_assembly)); - File.WriteAllText(quickstart, String.Format(Resources.QuickStart, sign_assembly)); - } + // Copies keyfile to the various source directories. This is necessary + // as Visual Studio won't pick up the file otherwise. + static void DistributeKeyFile(string keyfile) + { + foreach (string dir in Directory.GetDirectories("Source")) + { + File.Copy(keyfile, Path.Combine(dir, keyfile), true); + } + } - // Copies keyfile to the various source directories. This is necessary - // as Visual Studio won't pick up the file otherwise. - static void DistributeKeyFile(string keyfile) - { - foreach (string dir in Directory.GetDirectories("Source")) - { - File.Copy(keyfile, Path.Combine(dir, keyfile), true); - } - } + static BuildTarget SelectTarget(string[] args) + { + BuildTarget target = BuildTarget.None; - static BuildTarget SelectTarget(string[] args) - { - BuildTarget target = BuildTarget.None; + foreach (string s in args) + { + string arg = s.ToLower().Trim(); + switch (arg) + { + case "": + break; - foreach (string s in args) - { - string arg = s.ToLower().Trim(); - switch (arg) - { - case "": - break; + case "help": + PrintHelp(); + break; - case "help": - PrintHelp(); - break; + case "mono": + case "xbuild": + target = BuildTarget.Mono; + break; - case "mono": - case "xbuild": - target = BuildTarget.Mono; - break; + case "net": + case "msbuild": + target = BuildTarget.Net; + break; - case "net": - case "msbuild": - target = BuildTarget.Net; - break; + case "vs2005": + case "vs8": + case "vs": + target = BuildTarget.VS2005; + break; - case "vs2005": - case "vs8": - case "vs": - target = BuildTarget.VS2005; - break; + case "vs2008": + case "vs9": + target = BuildTarget.VS2008; + break; + + case "msi": + target = BuildTarget.MSI; + break; - case "vs2008": - case "vs9": - target = BuildTarget.VS2008; - break; + case "clean": + target = BuildTarget.Clean; + break; - case "clean": - target = BuildTarget.Clean; - break; + case "distclean": + target = BuildTarget.DistClean; + break; - case "distclean": - target = BuildTarget.DistClean; - break; + default: + Console.WriteLine("Unknown command: {0}", s); + PrintUsage(); + break; + } + } - default: - Console.WriteLine("Unknown command: {0}", s); - PrintUsage(); - break; - } - } + return target; + } - return target; - } + static void Build(BuildTarget target, bool hasKeyFile) + { + switch (target) + { + //case BuildTarget.Mono: + // Console.WriteLine("Building OpenTK using Mono/XBuild."); + // ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); + // Console.WriteLine(); + // ExecuteProcess( + // "nant", + // "-buildfile:./Build/OpenTK.build -t:mono-2.0 " + (mode == BuildMode.Debug ? "build-debug" : "build-release")); + // CopyBinaries(); + // break; - static void Build(BuildTarget target) - { - switch (target) - { - //case BuildTarget.Mono: - // Console.WriteLine("Building OpenTK using Mono/XBuild."); - // ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); - // Console.WriteLine(); - // ExecuteProcess( - // "nant", - // "-buildfile:./Build/OpenTK.build -t:mono-2.0 " + (mode == BuildMode.Debug ? "build-debug" : "build-release")); - // CopyBinaries(); - // break; + //case BuildTarget.Net: + // Console.WriteLine("Building OpenTK using .Net"); + // ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); + // Console.WriteLine(); + // ExecuteProcess( + // "nant", + // "-buildfile:./Build/OpenTK.build -t:net-2.0 " + (mode == BuildMode.Debug ? "build-debug" : "build-release")); + // CopyBinaries(); + // break; - //case BuildTarget.Net: - // Console.WriteLine("Building OpenTK using .Net"); - // ExecuteProcess(PrebuildPath, "/target nant /file " + PrebuildXml); - // Console.WriteLine(); - // ExecuteProcess( - // "nant", - // "-buildfile:./Build/OpenTK.build -t:net-2.0 " + (mode == BuildMode.Debug ? "build-debug" : "build-release")); - // CopyBinaries(); - // break; + case BuildTarget.VS2005: + Console.WriteLine("Creating VS2005 project files"); + ExecutePrebuild("/target", "vs2008", "/file", bindings); + ExecutePrebuild("/target", "vs2005", "/file", opentk); + ExecutePrebuild("/target", "vs2005", "/file", quickstart); + break; - case BuildTarget.VS2005: - Console.WriteLine("Creating VS2005 project files"); - ExecutePrebuild("/target", "vs2008", "/file", bindings); - ExecutePrebuild("/target", "vs2005", "/file", opentk); - ExecutePrebuild("/target", "vs2005", "/file", quickstart); - break; + case BuildTarget.VS2008: + Console.WriteLine("Creating VS2008 project files"); + ExecutePrebuild("/target", "vs2008", "/file", bindings); + ExecutePrebuild("/target", "vs2008", "/file", opentk); + ExecutePrebuild("/target", "vs2008", "/file", quickstart); + break; + case BuildTarget.MSI: + if(hasKeyFile) { + Console.WriteLine("Creating VS2008 project files"); + ExecutePrebuild("/target", "vs2008", "/file", bindings); + ExecutePrebuild("/target", "vs2008", "/file", opentk); + ExecutePrebuild("/target", "vs2008", "/file", quickstart); + File.WriteAllText(buildMSI, Resources.BuildMSI); // create build msi file. + } else { + Console.WriteLine("MSI generation requires strong named assemblies for GAC installation but no \"OpenTK.snk\" was found."); + } + + break; + case BuildTarget.Clean: + Console.WriteLine("Cleaning intermediate object files."); + ExecutePrebuild("/clean", "/yes", "/file", bindings); + ExecutePrebuild("/clean", "/yes", "/file", opentk); + ExecutePrebuild("/clean", "/yes", "/file", quickstart); + DeleteDirectories(RootPath, "obj"); + DeleteFiles(SourcePath, keyfile); + File.Delete(Path.Combine(RootPath, buildMSI)); + break; - case BuildTarget.VS2008: - Console.WriteLine("Creating VS2008 project files"); - ExecutePrebuild("/target", "vs2008", "/file", bindings); - ExecutePrebuild("/target", "vs2008", "/file", opentk); - ExecutePrebuild("/target", "vs2008", "/file", quickstart); - break; + case BuildTarget.DistClean: + Console.WriteLine("Cleaning intermediate and final object files."); + ExecutePrebuild("/clean", "/yes", "/file", bindings); + ExecutePrebuild("/clean", "/yes", "/file", opentk); + ExecutePrebuild("/clean", "/yes", "/file", quickstart); + DeleteDirectories(RootPath, "obj"); + DeleteDirectories(RootPath, "bin"); + DeleteFiles(SourcePath, keyfile); + File.Delete(Path.Combine(RootPath, buildMSI)); + string binaries_path = Path.Combine(RootPath, "Binaries"); + if (Directory.Exists(binaries_path)) + Directory.Delete(binaries_path, true); + string help_path = Path.Combine(RootPath, "Help"); + if (Directory.Exists(help_path)) + Directory.Delete(help_path, true); + string installer_path = Path.Combine(RootPath, "Installer"); + if (Directory.Exists(installer_path)) + Directory.Delete(installer_path, true); + + break; - case BuildTarget.Clean: - Console.WriteLine("Cleaning intermediate object files."); - ExecutePrebuild("/clean", "/yes", "/file", bindings); - ExecutePrebuild("/clean", "/yes", "/file", opentk); - ExecutePrebuild("/clean", "/yes", "/file", quickstart); - DeleteDirectories(RootPath, "obj"); - DeleteFiles(SourcePath, keyfile); - break; + default: + Console.WriteLine("Unknown target: {0}", target); + PrintUsage(); + break; + } + } - case BuildTarget.DistClean: - Console.WriteLine("Cleaning intermediate and final object files."); - ExecutePrebuild("/clean", "/yes", "/file", bindings); - ExecutePrebuild("/clean", "/yes", "/file", opentk); - ExecutePrebuild("/clean", "/yes", "/file", quickstart); - DeleteDirectories(RootPath, "obj"); - DeleteDirectories(RootPath, "bin"); - DeleteFiles(SourcePath, keyfile); + static void WaitForExit() + { + if (Debugger.IsAttached) + { + Console.WriteLine("Press any key to continue..."); + Console.ReadKey(true); + } + } - string binaries_path = Path.Combine(RootPath, "Binaries"); - if (Directory.Exists(binaries_path)) - Directory.Delete(binaries_path, true); + static void DeletePrebuildFiles() + { + try + { + File.Delete(bindings); + File.Delete(opentk); + File.Delete(quickstart); + } + catch (IOException e) + { + Console.WriteLine("[Warning] Failed to delete prebuild files, error follows:"); + Console.WriteLine(e.ToString()); + } + } - break; + static void ApplyMonoDevelopWorkarounds(string solution) + { + // Both workarounds cause problems in visual studio... + //File.WriteAllText(solution, File.ReadAllText(solution) + // .Replace("AssemblyOriginatorKeyFile", "AssemblyKeyFile")); + // .Replace(@"..\", @"../")); + } - default: - Console.WriteLine("Unknown target: {0}", target); - PrintUsage(); - break; - } - } + static void DeleteDirectories(string root_path, string search) + { + Console.WriteLine("Deleting {0} directories", search); + List matches = new List(); + FindDirectories(root_path, search, matches); + foreach (string m in matches) + { + Directory.Delete(m, true); + } + } - static void WaitForExit() - { - if (Debugger.IsAttached) - { - Console.WriteLine("Press any key to continue..."); - Console.ReadKey(true); - } - } + static void DeleteFiles(string root_path, string search) + { + Console.WriteLine("Deleting {0} files", search); + List matches = new List(); + FindDirectories(root_path, search, matches); + foreach (string m in matches) + { + File.Delete(m); + } + } - static void DeletePrebuildFiles() - { - try - { - File.Delete(bindings); - File.Delete(opentk); - File.Delete(quickstart); - } - catch (IOException e) - { - Console.WriteLine("[Warning] Failed to delete prebuild files, error follows:"); - Console.WriteLine(e.ToString()); - } - } + static void FindDirectories(string directory, string search, List matches) + { + try + { + foreach (string d in Directory.GetDirectories(directory)) + { + foreach (string f in Directory.GetDirectories(d, search)) + { + matches.Add(f); + } + FindDirectories(d, search, matches); + } + } + catch (System.Exception e) + { + Console.WriteLine(e.Message); + } + } - static void ApplyMonoDevelopWorkarounds(string solution) - { - // Both workarounds cause problems in visual studio... - //File.WriteAllText(solution, File.ReadAllText(solution) - // .Replace("AssemblyOriginatorKeyFile", "AssemblyKeyFile")); - // .Replace(@"..\", @"../")); - } + static void FindFiles(string directory, string search, List matches) + { + try + { + foreach (string d in Directory.GetDirectories(directory)) + { + foreach (string f in Directory.GetFiles(d, search)) + { + matches.Add(f); + } + FindFiles(d, search, matches); + } + } + catch (System.Exception e) + { + Console.WriteLine(e.Message); + } + } - static void DeleteDirectories(string root_path, string search) - { - Console.WriteLine("Deleting {0} directories", search); - List matches = new List(); - FindDirectories(root_path, search, matches); - foreach (string m in matches) - { - Directory.Delete(m, true); - } - } + static void FileCopy(string srcdir, string destdir, Regex match) + { + //DirectoryInfo dir; + //FileInfo[] files; + //DirectoryInfo[] dirs; + //string tmppath; - static void DeleteFiles(string root_path, string search) - { - Console.WriteLine("Deleting {0} files", search); - List matches = new List(); - FindDirectories(root_path, search, matches); - foreach (string m in matches) - { - File.Delete(m); - } - } + //determine if the destination directory exists, if not create it + if (!Directory.Exists(destdir)) + Directory.CreateDirectory(destdir); - static void FindDirectories(string directory, string search, List matches) - { - try - { - foreach (string d in Directory.GetDirectories(directory)) - { - foreach (string f in Directory.GetDirectories(d, search)) - { - matches.Add(f); - } - FindDirectories(d, search, matches); - } - } - catch (System.Exception e) - { - Console.WriteLine(e.Message); - } - } + if (!Directory.Exists(srcdir)) + throw new ArgumentException("source dir doesn't exist -> " + srcdir); - static void FindFiles(string directory, string search, List matches) - { - try - { - foreach (string d in Directory.GetDirectories(directory)) - { - foreach (string f in Directory.GetFiles(d, search)) - { - matches.Add(f); - } - FindFiles(d, search, matches); - } - } - catch (System.Exception e) - { - Console.WriteLine(e.Message); - } - } + string[] files = Directory.GetFiles(srcdir); + foreach (string f in files) + //if (Path.GetExtension(f).ToLower() == ext.ToLower()) + if (match.IsMatch(Path.GetExtension(f))) + File.Copy(f, Path.Combine(destdir, Path.GetFileName(f)), true); - static void FileCopy(string srcdir, string destdir, Regex match) - { - //DirectoryInfo dir; - //FileInfo[] files; - //DirectoryInfo[] dirs; - //string tmppath; + foreach (string dir in Directory.GetDirectories(srcdir)) + { + string name = dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar)+1); + if (!name.StartsWith(".")) + FileCopy(dir, Path.Combine(destdir, name), match); + } + } - //determine if the destination directory exists, if not create it - if (!Directory.Exists(destdir)) - Directory.CreateDirectory(destdir); + static void ExecutePrebuild(params string[] options) + { + Prebuild.EntryPoint.Invoke(null, new object[] { options }); + } - if (!Directory.Exists(srcdir)) - throw new ArgumentException("source dir doesn't exist -> " + srcdir); - - string[] files = Directory.GetFiles(srcdir); - foreach (string f in files) - //if (Path.GetExtension(f).ToLower() == ext.ToLower()) - if (match.IsMatch(Path.GetExtension(f))) - File.Copy(f, Path.Combine(destdir, Path.GetFileName(f)), true); - - foreach (string dir in Directory.GetDirectories(srcdir)) - { - string name = dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar)+1); - if (!name.StartsWith(".")) - FileCopy(dir, Path.Combine(destdir, name), match); - } - } - - static void ExecutePrebuild(params string[] options) - { - Prebuild.EntryPoint.Invoke(null, new object[] { options }); - } - - static bool CheckKeyFile(string keyfile) - { - if (!File.Exists(keyfile)) - { - //Console.WriteLine("Keyfile {0} not found. Generating temporary key pair.", keyfile); - //Process keygen = Process.Start("sn", "-k " + keyfile); - //keygen.WaitForExit(); - Console.WriteLine("Keyfile {0} not found. Assemblies will not be signed.", keyfile); - Console.WriteLine(); - return false; - } - else - { - Console.WriteLine("Keyfile {0} found. Assemblies will be signed.", keyfile); - Console.WriteLine(); - return true; - } - } - } + static bool CheckKeyFile(string keyfile) + { + if (!File.Exists(keyfile)) + { + //Console.WriteLine("Keyfile {0} not found. Generating temporary key pair.", keyfile); + //Process keygen = Process.Start("sn", "-k " + keyfile); + //keygen.WaitForExit(); + Console.WriteLine("Keyfile {0} not found. Assemblies will not be signed.", keyfile); + Console.WriteLine(); + return false; + } + else + { + Console.WriteLine("Keyfile {0} found. Assemblies will be signed.", keyfile); + Console.WriteLine(); + return true; + } + } + } } Index: Source/Build/Properties/Resources.Designer.cs =================================================================== --- Source/Build/Properties/Resources.Designer.cs (revision 2553) +++ Source/Build/Properties/Resources.Designer.cs (working copy) @@ -166,5 +166,11 @@ return ResourceManager.GetString("QuickStart", resourceCulture); } } + + internal static string BuildMSI { + get { + return ResourceManager.GetString("BuildMSI", resourceCulture); + } + } } } Index: Source/Build/Properties/Resources.resx =================================================================== --- Source/Build/Properties/Resources.resx (revision 2553) +++ Source/Build/Properties/Resources.resx (working copy) @@ -124,6 +124,9 @@ ..\Resources\OpenTK.Prebuild.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\BuildMSI.proj;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Prebuild.exe;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Index: Source/Build/Resources/BuildMSI.proj =================================================================== --- Source/Build/Resources/BuildMSI.proj (revision 0) +++ Source/Build/Resources/BuildMSI.proj (revision 0) @@ -0,0 +1,31 @@ + + + + .\Source\ + .\Binaries\OpenTK\Release\ + .\Help\ + + + + + + + + + + + + + + + + + \ No newline at end of file Index: Source/Help/OpenTK.Help.shfbproj =================================================================== --- Source/Help/OpenTK.Help.shfbproj (revision 0) +++ Source/Help/OpenTK.Help.shfbproj (revision 0) @@ -0,0 +1,35 @@ + + + + Debug + AnyCPU + 2.0 + {8ef0e000-6373-438d-8ab7-416ead466d05} + 1.8.0.0 + + Documentation + Documentation + Documentation + + ..\..\Help\ + OpenTK API + + + + + Prototype + Msdn + Guid + OpenTK API + + + + + + + + \ No newline at end of file Property changes on: Source\Setup ___________________________________________________________________ Added: svn:ignore + OpenTK.snk bin obj Index: Source/Setup/Files.wxs =================================================================== --- Source/Setup/Files.wxs (revision 0) +++ Source/Setup/Files.wxs (revision 0) @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: Source/Setup/Files/OpenTK.ico =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: Source\Setup\Files\OpenTK.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: Source/Setup/Files/OpenTk.url =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: Source\Setup\Files\OpenTk.url ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: Source/Setup/License.rtf =================================================================== --- Source/Setup/License.rtf (revision 0) +++ Source/Setup/License.rtf (revision 0) @@ -0,0 +1,53 @@ +{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}} +{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\lang3081\f0\fs20 The Open Toolkit library license\par +\par +Copyright (c) 2006 - 2009 The Open Toolkit library.\par +\par +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:\par +\par +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par +\par +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.\par +\par +\par +Third parties\par +\par +\par +OpenTK.Platform.Windows and OpenTK.Platform.X11 include portions of the Mono class library. These portions are covered by the following license:\par +\par +Copyright (c) 2004 Novell, Inc.\par +\par +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:\par +\par +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par +\par +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.\par +\par +\par +\par +OpenTK.Compatibility includes portions of the Tao Framework library (Tao.OpenGl, Tao.OpenAl and Tao.Platform.Windows.SimpleOpenGlControl). These portions are covered by the following license:\par +\par +Copyright \'a92003-2007 Tao Framework Team\par +http://www.taoframework.com\par +All rights reserved.\par +\par +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: \par +\par +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par +\par +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.\par +\par +\par +\par +OpenTK.Half offers Half-to-Single and Single-to-Half conversions based on OpenEXR source code, which is covered by the following license:\par +\par +Copyright (c) 2002, Industrial Light & Magic, a division of Lucas Digital Ltd. LLC. All rights reserved.\par +\par +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\par +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\par +* Neither the name of Industrial Light & Magic nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\par +\par +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par +} + \ No newline at end of file Index: Source/Setup/OpenTK.Setup.wixproj =================================================================== --- Source/Setup/OpenTK.Setup.wixproj (revision 0) +++ Source/Setup/OpenTK.Setup.wixproj (revision 0) @@ -0,0 +1,22 @@ + + + Package + OpenTK 0.9.5 + ICE45 + WixUILicenseRtf=license.rtf + $(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets + ..\..\Installer + false + + + + + + + + + + + + + \ No newline at end of file Index: Source/Setup/Setup.wxs =================================================================== --- Source/Setup/Setup.wxs (revision 0) +++ Source/Setup/Setup.wxs (revision 0) @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + Installed OR NETFRAMEWORK20 = "#1" + + + + + Installed OR VersionNT >= 500 + + + + 2 + + + http://www.opentk.com/forum + http://www.opentk.com/forum + http://www.opentk.com/ + http://www.opentk.com/files/download-opentk.html + + + + + + OpenTK.exe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSTALLDIR + + + + + + + + + NEWERVERSIONFOUND + + + + + \ No newline at end of file