From a89cb710c794bdf0694bbe16943cb760ddfa4d2e Mon Sep 17 00:00:00 2001 From: Andrey Kurdyumov Date: Sun, 8 Feb 2015 22:57:16 +0600 Subject: [PATCH 1/2] Add bin format --- source/Cosmos.Build.Common/BinFormat.cs | 11 +++++++++++ source/Cosmos.Build.Common/BuildProperties.cs | 14 ++++++++++++++ .../Cosmos.Build.Common/Cosmos.Build.Common.csproj | 1 + 3 files changed, 26 insertions(+) create mode 100644 source/Cosmos.Build.Common/BinFormat.cs diff --git a/source/Cosmos.Build.Common/BinFormat.cs b/source/Cosmos.Build.Common/BinFormat.cs new file mode 100644 index 000000000..7fa59f03a --- /dev/null +++ b/source/Cosmos.Build.Common/BinFormat.cs @@ -0,0 +1,11 @@ +namespace Cosmos.Build.Common +{ + /// + /// Format for the images produced. + /// + public enum BinFormat + { + Elf, + Bin, + } +} diff --git a/source/Cosmos.Build.Common/BuildProperties.cs b/source/Cosmos.Build.Common/BuildProperties.cs index dafc98181..ee83d2556 100644 --- a/source/Cosmos.Build.Common/BuildProperties.cs +++ b/source/Cosmos.Build.Common/BuildProperties.cs @@ -221,5 +221,19 @@ namespace Cosmos.Build.Common { get { return GetProperty(EnableBochsDebugString, false); } set { SetProperty(EnableBochsDebugString, value); } } + + /// + /// Name of the configuration property in the project file. + /// + public const string BinFormatString = "BinFormat"; + + /// + /// Gets or sets binary format which is used for producing kernel image. + /// + public BinFormat BinFormat + { + get { return GetProperty(BinFormatString, BinFormat.Bin); } + set { SetProperty(BinFormatString, value); } + } } } diff --git a/source/Cosmos.Build.Common/Cosmos.Build.Common.csproj b/source/Cosmos.Build.Common/Cosmos.Build.Common.csproj index 5c6683bf4..80391dbb7 100644 --- a/source/Cosmos.Build.Common/Cosmos.Build.Common.csproj +++ b/source/Cosmos.Build.Common/Cosmos.Build.Common.csproj @@ -76,6 +76,7 @@ + From 806470870d9e87ea98a8cb5420224e9b814510a6 Mon Sep 17 00:00:00 2001 From: Andrey Kurdyumov Date: Wed, 11 Feb 2015 01:38:22 +0600 Subject: [PATCH 2/2] Saving BinFormat under common properties. --- .../BuildPropertiesTest.cs | 25 ++ .../Cosmos.Build.Common.Tests.csproj | 90 +++++ .../EnumValueTest.cs | 26 ++ .../Properties/AssemblyInfo.cs | 36 ++ source/Cosmos.Build.Common/BuildProperties.cs | 62 +++- source/Cosmos.Build.Common/EnumValue.cs | 19 +- source/Cosmos.Build.Common/PropertiesBase.cs | 40 ++- .../AD7.Impl/AD7Thread.cs | 2 +- .../Cosmos.VS.Package/CosmosPage.Designer.cs | 332 +++++++++++------- source/Cosmos.VS.Package/CosmosPage.cs | 44 ++- source/Cosmos.VS.Package/CosmosPage.resx | 6 +- .../Cosmos.VS.Package/CustomPropertyPage.cs | 32 +- source/Cosmos.sln | 15 + 13 files changed, 568 insertions(+), 161 deletions(-) create mode 100644 source/Cosmos.Build.Common.Tests/BuildPropertiesTest.cs create mode 100644 source/Cosmos.Build.Common.Tests/Cosmos.Build.Common.Tests.csproj create mode 100644 source/Cosmos.Build.Common.Tests/EnumValueTest.cs create mode 100644 source/Cosmos.Build.Common.Tests/Properties/AssemblyInfo.cs diff --git a/source/Cosmos.Build.Common.Tests/BuildPropertiesTest.cs b/source/Cosmos.Build.Common.Tests/BuildPropertiesTest.cs new file mode 100644 index 000000000..6964a9a82 --- /dev/null +++ b/source/Cosmos.Build.Common.Tests/BuildPropertiesTest.cs @@ -0,0 +1,25 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Cosmos.Build.Common.Tests +{ + [TestClass] + public class BuildPropertiesTest + { + [TestMethod] + public void TestParsing() + { + var properties = new BuildProperties(); + properties.SetProperty(BuildProperties.StackCorruptionDetectionEnabledString, "False"); + Assert.AreEqual( + false, + properties.GetProperty(BuildProperties.StackCorruptionDetectionEnabledString, true)); + Assert.AreEqual( + false, + properties.StackCorruptionDetectionEnabled); + Assert.AreEqual( + "False", + properties.GetProperty(BuildProperties.StackCorruptionDetectionEnabledString)); + } + } +} diff --git a/source/Cosmos.Build.Common.Tests/Cosmos.Build.Common.Tests.csproj b/source/Cosmos.Build.Common.Tests/Cosmos.Build.Common.Tests.csproj new file mode 100644 index 000000000..d640fa058 --- /dev/null +++ b/source/Cosmos.Build.Common.Tests/Cosmos.Build.Common.Tests.csproj @@ -0,0 +1,90 @@ + + + + Debug + AnyCPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B} + Library + Properties + Cosmos.Build.Common.Tests + Cosmos.Build.Common.Tests + v4.5 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + {0462e82b-8c29-41a9-8265-9c89038adb29} + Cosmos.Build.Common + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/source/Cosmos.Build.Common.Tests/EnumValueTest.cs b/source/Cosmos.Build.Common.Tests/EnumValueTest.cs new file mode 100644 index 000000000..6e817dfba --- /dev/null +++ b/source/Cosmos.Build.Common.Tests/EnumValueTest.cs @@ -0,0 +1,26 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Cosmos.Build.Common.Tests +{ + [TestClass] + public class EnumValueTest + { + [TestMethod] + public void TestParsing() + { + var actual = EnumValue.Parse("bin", BinFormat.Bin); + Assert.AreEqual(BinFormat.Bin, actual); + actual = EnumValue.Parse("", BinFormat.Bin); + Assert.AreEqual(BinFormat.Bin, actual); + actual = EnumValue.Parse(" 1", BinFormat.Bin); + Assert.AreEqual(BinFormat.Bin, actual); + actual = EnumValue.Parse("elf", BinFormat.Bin); + Assert.AreEqual(BinFormat.Elf, actual); + actual = EnumValue.Parse("Elf", BinFormat.Bin); + Assert.AreEqual(BinFormat.Elf, actual); + actual = EnumValue.Parse("Bin", BinFormat.Bin); + Assert.AreEqual(BinFormat.Bin, actual); + } + } +} diff --git a/source/Cosmos.Build.Common.Tests/Properties/AssemblyInfo.cs b/source/Cosmos.Build.Common.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..005f1f173 --- /dev/null +++ b/source/Cosmos.Build.Common.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Cosmos.Build.Common.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Cosmos.Build.Common.Tests")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e6ef1a14-48a3-4ade-a04a-4fe8dc880d12")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/Cosmos.Build.Common/BuildProperties.cs b/source/Cosmos.Build.Common/BuildProperties.cs index ee83d2556..6695b1434 100644 --- a/source/Cosmos.Build.Common/BuildProperties.cs +++ b/source/Cosmos.Build.Common/BuildProperties.cs @@ -23,22 +23,58 @@ namespace Cosmos.Build.Common { } } - public void SaveProfile(string aName) { - foreach (var xName in BuildProperties.PropNames) { - string xValue = GetProperty(xName); - if (!string.IsNullOrWhiteSpace(xValue)) { - SetProperty(aName + "_" + xName, xValue); - } - } + /// + /// Gets array of project names which are project independent. + /// + public override string[] ProjectIndependentProperties + { + get { return new string[] { BinFormatString }; } } - public void LoadProfile(string aName) { - foreach (var xName in BuildProperties.PropNames) { - string xValue = GetProperty(aName + "_" + xName); - if (!string.IsNullOrWhiteSpace(xValue)) { - SetProperty(xName, xValue); + /// + /// Save properties under selected profile. + /// + /// Name of the profile for which save properties. + public void SaveProfile(string aName) { + foreach (var xName in BuildProperties.PropNames) + { + // Skip project independent properties. + if (this.ProjectIndependentProperties.Contains(xName)) + { + continue; + } + + string xValue = GetProperty(xName); + if (!string.IsNullOrWhiteSpace(xValue)) + { + SetProperty(aName + "_" + xName, xValue); + } + } + } + + /// + /// Load properties for the given profile. + /// + /// Name of the profile for which load properties. + public void LoadProfile(string aName) { + foreach (var xName in BuildProperties.PropNames) + { + string xValue; + // Skip project independent properties. + if (this.ProjectIndependentProperties.Contains(xName)) + { + xValue = GetProperty(xName); + } + else + { + xValue = GetProperty(aName + "_" + xName); + } + + if (!string.IsNullOrWhiteSpace(xValue)) + { + SetProperty(xName, xValue); + } } - } // Reforce fixed settings for presets on each load. if (aName == "ISO") { diff --git a/source/Cosmos.Build.Common/EnumValue.cs b/source/Cosmos.Build.Common/EnumValue.cs index ab4ebc2fd..ddb56660c 100644 --- a/source/Cosmos.Build.Common/EnumValue.cs +++ b/source/Cosmos.Build.Common/EnumValue.cs @@ -7,20 +7,27 @@ namespace Cosmos.Build.Common { public class EnumValue { - public static T Parse(String value, T @default) + /// + /// Parse string to enumeration. + /// + /// Type of enumeration to use. + /// Value which should be parsed as the enumeration. + /// Default value to use, if input string contains invalid value. + /// Parsed value, or default value if input string is invalid. + public static T Parse(string value, T @default) + where T: struct { T result = @default; Type valueType = typeof(T); if (valueType.IsEnum == false) - { throw new ArgumentException("Enum types only supported.", "T"); } + { + throw new ArgumentException("Enum types only supported.", "T"); + } if (String.IsNullOrEmpty(value) == false) { - if (Enum.IsDefined(valueType, value) == true) - { - result = (T)Enum.Parse(valueType, value); - } + Enum.TryParse(value, true, out result); } return result; diff --git a/source/Cosmos.Build.Common/PropertiesBase.cs b/source/Cosmos.Build.Common/PropertiesBase.cs index 61835a234..17b3a3085 100644 --- a/source/Cosmos.Build.Common/PropertiesBase.cs +++ b/source/Cosmos.Build.Common/PropertiesBase.cs @@ -17,6 +17,11 @@ namespace Cosmos.Build.Common { return clonedTable; } + /// + /// Gets array of project names which are project independent. + /// + public abstract string[] ProjectIndependentProperties { get; } + public void Reset() { mPropTable.Clear(); } @@ -37,7 +42,33 @@ namespace Cosmos.Build.Common { return GetProperty(name, string.Empty); } - public T GetProperty(string name, T @default) { + /// + /// Get string value of the property. + /// + /// Name of the property. + /// Default value for the property. + /// Vaue of the property with given name. + public string GetProperty(string name, string @default) + { + string value = @default; + if (mPropTable.ContainsKey(name) == true) + { + value = mPropTable[name]; + } + + return value; + } + + /// + /// Gets typed value of the property. + /// + /// Get property type. + /// Get name of the property. + /// Default value for the proeprty. + /// Value of the property with given name. + public T GetProperty(string name, T @default) + where T: struct + { T value = @default; if (mPropTable.ContainsKey(name) == true) { string stringValue = mPropTable[name]; @@ -45,12 +76,9 @@ namespace Cosmos.Build.Common { string valueTypeName = valueType.Name; if (valueType.IsEnum == true) { - value = EnumValue.Parse(stringValue, @default); + value = EnumValue.Parse(stringValue, @default); } else { - // TODO Check on types directly instead of string literal - if (valueType == typeof(string)) { - value = (T)((Object)stringValue); - } else if ((valueTypeName == "Int16") || (valueTypeName == "Short")) { + if ((valueTypeName == "Int16") || (valueTypeName == "Short")) { Int16 newValue; if (Int16.TryParse(stringValue, out newValue) == true) { value = (T)((Object)newValue); } diff --git a/source/Cosmos.Debug.VSDebugEngine/AD7.Impl/AD7Thread.cs b/source/Cosmos.Debug.VSDebugEngine/AD7.Impl/AD7Thread.cs index f9f91ea99..27bfbf08b 100644 --- a/source/Cosmos.Debug.VSDebugEngine/AD7.Impl/AD7Thread.cs +++ b/source/Cosmos.Debug.VSDebugEngine/AD7.Impl/AD7Thread.cs @@ -44,7 +44,7 @@ namespace Cosmos.Debug.VSDebugEngine { // EnumFrameInfo is called several times on each break becuase "different callers can call with different flags". // We ignore flags through and always return full, but EnumFrameInfo gets called half a dozen times which is slow // if we refresh each and every time. So we cache our info. - if (mProcess.mStackFrame == null) { + if (mProcess.mStackFrame == null || true) { // Ask the lower-level to perform a stack walk on this thread //m_engine.DebuggedProcess.DoStackWalk(this.m_debuggedThread); oEnumObject = null; diff --git a/source/Cosmos.VS.Package/CosmosPage.Designer.cs b/source/Cosmos.VS.Package/CosmosPage.Designer.cs index 2b0712dbe..1d1e21c72 100644 --- a/source/Cosmos.VS.Package/CosmosPage.Designer.cs +++ b/source/Cosmos.VS.Package/CosmosPage.Designer.cs @@ -44,6 +44,8 @@ this.lablDeployText = new System.Windows.Forms.Label(); this.lablBuildOnly = new System.Windows.Forms.Label(); this.tabCompile = new System.Windows.Forms.TabPage(); + this.labelBinFormat = new System.Windows.Forms.Label(); + this.comboBinFormat = new System.Windows.Forms.ComboBox(); this.comboFramework = new System.Windows.Forms.ComboBox(); this.buttonOutputBrowse = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); @@ -111,25 +113,28 @@ this.panel1.Controls.Add(this.label11); this.panel1.Dock = System.Windows.Forms.DockStyle.Top; this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Margin = new System.Windows.Forms.Padding(4); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(635, 43); + this.panel1.Size = new System.Drawing.Size(847, 53); this.panel1.TabIndex = 3; // // lablCurrentProfile // this.lablCurrentProfile.AutoSize = true; - this.lablCurrentProfile.Location = new System.Drawing.Point(99, 17); + this.lablCurrentProfile.Location = new System.Drawing.Point(132, 21); + this.lablCurrentProfile.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lablCurrentProfile.Name = "lablCurrentProfile"; - this.lablCurrentProfile.Size = new System.Drawing.Size(41, 13); + this.lablCurrentProfile.Size = new System.Drawing.Size(54, 17); this.lablCurrentProfile.TabIndex = 1; this.lablCurrentProfile.Text = "label12"; // // label11 // this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(17, 17); + this.label11.Location = new System.Drawing.Point(23, 21); + this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(76, 13); + this.label11.Size = new System.Drawing.Size(103, 17); this.label11.TabIndex = 0; this.label11.Text = "Current Profile:"; // @@ -148,11 +153,12 @@ this.TabControl1.Controls.Add(this.tabISO); this.TabControl1.Controls.Add(this.tabSlave); this.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.TabControl1.Location = new System.Drawing.Point(0, 43); + this.TabControl1.Location = new System.Drawing.Point(0, 53); + this.TabControl1.Margin = new System.Windows.Forms.Padding(4); this.TabControl1.Multiline = true; this.TabControl1.Name = "TabControl1"; this.TabControl1.SelectedIndex = 0; - this.TabControl1.Size = new System.Drawing.Size(635, 413); + this.TabControl1.Size = new System.Drawing.Size(847, 508); this.TabControl1.TabIndex = 1; // // tabProfile @@ -161,10 +167,11 @@ this.tabProfile.Controls.Add(this.panel2); this.tabProfile.Controls.Add(this.lablDeployText); this.tabProfile.Controls.Add(this.lablBuildOnly); - this.tabProfile.Location = new System.Drawing.Point(4, 22); + this.tabProfile.Location = new System.Drawing.Point(4, 25); + this.tabProfile.Margin = new System.Windows.Forms.Padding(4); this.tabProfile.Name = "tabProfile"; - this.tabProfile.Padding = new System.Windows.Forms.Padding(3); - this.tabProfile.Size = new System.Drawing.Size(627, 387); + this.tabProfile.Padding = new System.Windows.Forms.Padding(4); + this.tabProfile.Size = new System.Drawing.Size(839, 479); this.tabProfile.TabIndex = 8; this.tabProfile.Text = "Profile"; this.tabProfile.UseVisualStyleBackColor = true; @@ -174,9 +181,10 @@ this.lablPreset.AutoSize = true; this.lablPreset.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lablPreset.ForeColor = System.Drawing.SystemColors.HotTrack; - this.lablPreset.Location = new System.Drawing.Point(217, 17); + this.lablPreset.Location = new System.Drawing.Point(289, 21); + this.lablPreset.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lablPreset.Name = "lablPreset"; - this.lablPreset.Size = new System.Drawing.Size(247, 13); + this.lablPreset.Size = new System.Drawing.Size(321, 19); this.lablPreset.TabIndex = 7; this.lablPreset.Text = "** This is a preset. Some options are restricted."; // @@ -185,30 +193,34 @@ this.panel2.Controls.Add(this.lboxProfile); this.panel2.Controls.Add(this.toolStrip1); this.panel2.Dock = System.Windows.Forms.DockStyle.Left; - this.panel2.Location = new System.Drawing.Point(3, 3); + this.panel2.Location = new System.Drawing.Point(4, 4); + this.panel2.Margin = new System.Windows.Forms.Padding(4); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(200, 381); + this.panel2.Size = new System.Drawing.Size(267, 471); this.panel2.TabIndex = 6; // // lboxProfile // this.lboxProfile.Dock = System.Windows.Forms.DockStyle.Fill; this.lboxProfile.FormattingEnabled = true; - this.lboxProfile.Location = new System.Drawing.Point(0, 25); + this.lboxProfile.ItemHeight = 16; + this.lboxProfile.Location = new System.Drawing.Point(0, 27); + this.lboxProfile.Margin = new System.Windows.Forms.Padding(4); this.lboxProfile.Name = "lboxProfile"; - this.lboxProfile.Size = new System.Drawing.Size(200, 356); + this.lboxProfile.Size = new System.Drawing.Size(267, 444); this.lboxProfile.Sorted = true; this.lboxProfile.TabIndex = 3; // // toolStrip1 // + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.butnProfileClone, this.butnProfileDelete, this.butnProfileRename}); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(200, 25); + this.toolStrip1.Size = new System.Drawing.Size(267, 27); this.toolStrip1.TabIndex = 2; this.toolStrip1.Text = "toolStrip1"; // @@ -218,7 +230,7 @@ this.butnProfileClone.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileClone.Image"))); this.butnProfileClone.ImageTransparentColor = System.Drawing.Color.Magenta; this.butnProfileClone.Name = "butnProfileClone"; - this.butnProfileClone.Size = new System.Drawing.Size(23, 22); + this.butnProfileClone.Size = new System.Drawing.Size(24, 24); this.butnProfileClone.Text = "Clone"; this.butnProfileClone.ToolTipText = "Create a new profile from an existing one."; // @@ -228,7 +240,7 @@ this.butnProfileDelete.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileDelete.Image"))); this.butnProfileDelete.ImageTransparentColor = System.Drawing.Color.Magenta; this.butnProfileDelete.Name = "butnProfileDelete"; - this.butnProfileDelete.Size = new System.Drawing.Size(23, 22); + this.butnProfileDelete.Size = new System.Drawing.Size(24, 24); this.butnProfileDelete.Text = "Delete"; this.butnProfileDelete.ToolTipText = "Delete selected profile"; // @@ -238,15 +250,16 @@ this.butnProfileRename.Image = ((System.Drawing.Image)(resources.GetObject("butnProfileRename.Image"))); this.butnProfileRename.ImageTransparentColor = System.Drawing.Color.Magenta; this.butnProfileRename.Name = "butnProfileRename"; - this.butnProfileRename.Size = new System.Drawing.Size(23, 22); + this.butnProfileRename.Size = new System.Drawing.Size(24, 24); this.butnProfileRename.Text = "Rename"; this.butnProfileRename.ToolTipText = "Rename selected profile."; // // lablDeployText // - this.lablDeployText.Location = new System.Drawing.Point(217, 44); + this.lablDeployText.Location = new System.Drawing.Point(289, 54); + this.lablDeployText.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lablDeployText.Name = "lablDeployText"; - this.lablDeployText.Size = new System.Drawing.Size(228, 137); + this.lablDeployText.Size = new System.Drawing.Size(304, 169); this.lablDeployText.TabIndex = 4; this.lablDeployText.Text = "label1"; // @@ -255,44 +268,75 @@ this.lablBuildOnly.AutoSize = true; this.lablBuildOnly.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lablBuildOnly.ForeColor = System.Drawing.SystemColors.HotTrack; - this.lablBuildOnly.Location = new System.Drawing.Point(217, 4); + this.lablBuildOnly.Location = new System.Drawing.Point(289, 5); + this.lablBuildOnly.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lablBuildOnly.Name = "lablBuildOnly"; - this.lablBuildOnly.Size = new System.Drawing.Size(310, 13); + this.lablBuildOnly.Size = new System.Drawing.Size(395, 19); this.lablBuildOnly.TabIndex = 3; this.lablBuildOnly.Text = "** This is a build only option. No process will be launched."; // // tabCompile // this.tabCompile.AutoScroll = true; + this.tabCompile.Controls.Add(this.labelBinFormat); + this.tabCompile.Controls.Add(this.comboBinFormat); this.tabCompile.Controls.Add(this.comboFramework); this.tabCompile.Controls.Add(this.buttonOutputBrowse); this.tabCompile.Controls.Add(this.label2); this.tabCompile.Controls.Add(this.textOutputPath); this.tabCompile.Controls.Add(this.labelFramework); - this.tabCompile.Location = new System.Drawing.Point(4, 22); + this.tabCompile.Location = new System.Drawing.Point(4, 25); + this.tabCompile.Margin = new System.Windows.Forms.Padding(4); this.tabCompile.Name = "tabCompile"; - this.tabCompile.Padding = new System.Windows.Forms.Padding(3); - this.tabCompile.Size = new System.Drawing.Size(627, 387); + this.tabCompile.Padding = new System.Windows.Forms.Padding(4); + this.tabCompile.Size = new System.Drawing.Size(839, 479); this.tabCompile.TabIndex = 0; this.tabCompile.Text = "Compile"; this.tabCompile.UseVisualStyleBackColor = true; // + // labelBinFormat + // + this.labelBinFormat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.labelBinFormat.AutoSize = true; + this.labelBinFormat.Enabled = false; + this.labelBinFormat.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelBinFormat.Location = new System.Drawing.Point(24, 139); + this.labelBinFormat.Margin = new System.Windows.Forms.Padding(29, 4, 0, 4); + this.labelBinFormat.Name = "labelBinFormat"; + this.labelBinFormat.Size = new System.Drawing.Size(82, 20); + this.labelBinFormat.TabIndex = 23; + this.labelBinFormat.Text = "Bin format:"; + this.labelBinFormat.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // comboBinFormat + // + this.comboBinFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBinFormat.FormattingEnabled = true; + this.comboBinFormat.Location = new System.Drawing.Point(45, 167); + this.comboBinFormat.Margin = new System.Windows.Forms.Padding(4); + this.comboBinFormat.Name = "comboBinFormat"; + this.comboBinFormat.Size = new System.Drawing.Size(303, 24); + this.comboBinFormat.TabIndex = 22; + // // comboFramework // this.comboFramework.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboFramework.Enabled = false; this.comboFramework.FormattingEnabled = true; - this.comboFramework.Location = new System.Drawing.Point(34, 87); + this.comboFramework.Location = new System.Drawing.Point(45, 107); + this.comboFramework.Margin = new System.Windows.Forms.Padding(4); this.comboFramework.Name = "comboFramework"; - this.comboFramework.Size = new System.Drawing.Size(228, 21); + this.comboFramework.Size = new System.Drawing.Size(303, 24); this.comboFramework.TabIndex = 5; // // buttonOutputBrowse // this.buttonOutputBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOutputBrowse.Location = new System.Drawing.Point(430, 37); + this.buttonOutputBrowse.Location = new System.Drawing.Point(573, 46); + this.buttonOutputBrowse.Margin = new System.Windows.Forms.Padding(4); this.buttonOutputBrowse.Name = "buttonOutputBrowse"; - this.buttonOutputBrowse.Size = new System.Drawing.Size(21, 23); + this.buttonOutputBrowse.Size = new System.Drawing.Size(28, 28); this.buttonOutputBrowse.TabIndex = 20; this.buttonOutputBrowse.Text = ".."; this.buttonOutputBrowse.UseVisualStyleBackColor = true; @@ -303,10 +347,10 @@ | System.Windows.Forms.AnchorStyles.Left))); this.label2.AutoSize = true; this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(18, 17); - this.label2.Margin = new System.Windows.Forms.Padding(22, 3, 0, 3); + this.label2.Location = new System.Drawing.Point(24, 21); + this.label2.Margin = new System.Windows.Forms.Padding(29, 4, 0, 4); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(75, 15); + this.label2.Size = new System.Drawing.Size(92, 20); this.label2.TabIndex = 19; this.label2.Text = "Output path:"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -315,9 +359,10 @@ // this.textOutputPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.textOutputPath.Location = new System.Drawing.Point(34, 38); + this.textOutputPath.Location = new System.Drawing.Point(45, 47); + this.textOutputPath.Margin = new System.Windows.Forms.Padding(4); this.textOutputPath.Name = "textOutputPath"; - this.textOutputPath.Size = new System.Drawing.Size(390, 20); + this.textOutputPath.Size = new System.Drawing.Size(519, 22); this.textOutputPath.TabIndex = 4; // // labelFramework @@ -327,10 +372,10 @@ this.labelFramework.AutoSize = true; this.labelFramework.Enabled = false; this.labelFramework.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelFramework.Location = new System.Drawing.Point(18, 66); - this.labelFramework.Margin = new System.Windows.Forms.Padding(22, 3, 0, 3); + this.labelFramework.Location = new System.Drawing.Point(24, 81); + this.labelFramework.Margin = new System.Windows.Forms.Padding(29, 4, 0, 4); this.labelFramework.Name = "labelFramework"; - this.labelFramework.Size = new System.Drawing.Size(69, 15); + this.labelFramework.Size = new System.Drawing.Size(85, 20); this.labelFramework.TabIndex = 21; this.labelFramework.Text = "Framework:"; this.labelFramework.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -339,9 +384,10 @@ // this.tabAssembler.Controls.Add(this.checkUseInternalAssembler); this.tabAssembler.Controls.Add(this.labelInternalAssembler); - this.tabAssembler.Location = new System.Drawing.Point(4, 22); + this.tabAssembler.Location = new System.Drawing.Point(4, 25); + this.tabAssembler.Margin = new System.Windows.Forms.Padding(4); this.tabAssembler.Name = "tabAssembler"; - this.tabAssembler.Size = new System.Drawing.Size(627, 387); + this.tabAssembler.Size = new System.Drawing.Size(839, 479); this.tabAssembler.TabIndex = 10; this.tabAssembler.Text = "Assembler"; this.tabAssembler.UseVisualStyleBackColor = true; @@ -353,10 +399,10 @@ this.checkUseInternalAssembler.AutoSize = true; this.checkUseInternalAssembler.Enabled = false; this.checkUseInternalAssembler.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.checkUseInternalAssembler.Location = new System.Drawing.Point(18, 12); - this.checkUseInternalAssembler.Margin = new System.Windows.Forms.Padding(22, 12, 3, 3); + this.checkUseInternalAssembler.Location = new System.Drawing.Point(24, 15); + this.checkUseInternalAssembler.Margin = new System.Windows.Forms.Padding(29, 15, 4, 4); this.checkUseInternalAssembler.Name = "checkUseInternalAssembler"; - this.checkUseInternalAssembler.Size = new System.Drawing.Size(146, 19); + this.checkUseInternalAssembler.Size = new System.Drawing.Size(182, 24); this.checkUseInternalAssembler.TabIndex = 6; this.checkUseInternalAssembler.Text = "Use Internal Assembler"; this.checkUseInternalAssembler.UseVisualStyleBackColor = true; @@ -364,10 +410,10 @@ // labelInternalAssembler // this.labelInternalAssembler.Enabled = false; - this.labelInternalAssembler.Location = new System.Drawing.Point(40, 32); - this.labelInternalAssembler.Margin = new System.Windows.Forms.Padding(44, 0, 3, 0); + this.labelInternalAssembler.Location = new System.Drawing.Point(53, 39); + this.labelInternalAssembler.Margin = new System.Windows.Forms.Padding(59, 0, 4, 0); this.labelInternalAssembler.Name = "labelInternalAssembler"; - this.labelInternalAssembler.Size = new System.Drawing.Size(224, 18); + this.labelInternalAssembler.Size = new System.Drawing.Size(299, 22); this.labelInternalAssembler.TabIndex = 20; this.labelInternalAssembler.Text = "Experimental. Check if you like to crash!"; // @@ -376,10 +422,11 @@ this.tabDebug.AutoScroll = true; this.tabDebug.Controls.Add(this.chckEnableDebugStub); this.tabDebug.Controls.Add(this.panlDebugSettings); - this.tabDebug.Location = new System.Drawing.Point(4, 22); + this.tabDebug.Location = new System.Drawing.Point(4, 25); + this.tabDebug.Margin = new System.Windows.Forms.Padding(4); this.tabDebug.Name = "tabDebug"; - this.tabDebug.Padding = new System.Windows.Forms.Padding(3); - this.tabDebug.Size = new System.Drawing.Size(627, 387); + this.tabDebug.Padding = new System.Windows.Forms.Padding(4); + this.tabDebug.Size = new System.Drawing.Size(839, 479); this.tabDebug.TabIndex = 2; this.tabDebug.Text = "Debug"; this.tabDebug.UseVisualStyleBackColor = true; @@ -387,9 +434,10 @@ // chckEnableDebugStub // this.chckEnableDebugStub.AutoSize = true; - this.chckEnableDebugStub.Location = new System.Drawing.Point(14, 17); + this.chckEnableDebugStub.Location = new System.Drawing.Point(19, 21); + this.chckEnableDebugStub.Margin = new System.Windows.Forms.Padding(4); this.chckEnableDebugStub.Name = "chckEnableDebugStub"; - this.chckEnableDebugStub.Size = new System.Drawing.Size(154, 17); + this.chckEnableDebugStub.Size = new System.Drawing.Size(200, 21); this.chckEnableDebugStub.TabIndex = 7; this.chckEnableDebugStub.Text = "Enable Remote Debugging"; this.chckEnableDebugStub.UseVisualStyleBackColor = true; @@ -406,17 +454,19 @@ this.panlDebugSettings.Controls.Add(this.label5); this.panlDebugSettings.Controls.Add(this.label9); this.panlDebugSettings.Controls.Add(this.checkIgnoreDebugStubAttribute); - this.panlDebugSettings.Location = new System.Drawing.Point(6, 51); + this.panlDebugSettings.Location = new System.Drawing.Point(8, 63); + this.panlDebugSettings.Margin = new System.Windows.Forms.Padding(4); this.panlDebugSettings.Name = "panlDebugSettings"; - this.panlDebugSettings.Size = new System.Drawing.Size(280, 285); + this.panlDebugSettings.Size = new System.Drawing.Size(373, 351); this.panlDebugSettings.TabIndex = 33; // // chkEnableStackCorruptionDetection // this.chkEnableStackCorruptionDetection.AutoSize = true; - this.chkEnableStackCorruptionDetection.Location = new System.Drawing.Point(8, 11); + this.chkEnableStackCorruptionDetection.Location = new System.Drawing.Point(11, 14); + this.chkEnableStackCorruptionDetection.Margin = new System.Windows.Forms.Padding(4); this.chkEnableStackCorruptionDetection.Name = "chkEnableStackCorruptionDetection"; - this.chkEnableStackCorruptionDetection.Size = new System.Drawing.Size(190, 17); + this.chkEnableStackCorruptionDetection.Size = new System.Drawing.Size(247, 21); this.chkEnableStackCorruptionDetection.TabIndex = 8; this.chkEnableStackCorruptionDetection.Text = "Enable Stack Corruption Detection"; this.chkEnableStackCorruptionDetection.UseVisualStyleBackColor = true; @@ -425,10 +475,10 @@ // label4 // this.label4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(5, 34); - this.label4.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.label4.Location = new System.Drawing.Point(7, 42); + this.label4.Margin = new System.Windows.Forms.Padding(0, 4, 0, 4); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(98, 21); + this.label4.Size = new System.Drawing.Size(131, 26); this.label4.TabIndex = 24; this.label4.Text = "Debug Level:"; this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -443,9 +493,10 @@ "Serial Com2", "Serial Com3", "Serial Com4"}); - this.cmboVisualStudioDebugPort.Location = new System.Drawing.Point(23, 256); + this.cmboVisualStudioDebugPort.Location = new System.Drawing.Point(31, 315); + this.cmboVisualStudioDebugPort.Margin = new System.Windows.Forms.Padding(4); this.cmboVisualStudioDebugPort.Name = "cmboVisualStudioDebugPort"; - this.cmboVisualStudioDebugPort.Size = new System.Drawing.Size(221, 21); + this.cmboVisualStudioDebugPort.Size = new System.Drawing.Size(293, 24); this.cmboVisualStudioDebugPort.Sorted = true; this.cmboVisualStudioDebugPort.TabIndex = 13; // @@ -453,9 +504,10 @@ // this.comboTraceMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboTraceMode.FormattingEnabled = true; - this.comboTraceMode.Location = new System.Drawing.Point(23, 109); + this.comboTraceMode.Location = new System.Drawing.Point(31, 134); + this.comboTraceMode.Margin = new System.Windows.Forms.Padding(4); this.comboTraceMode.Name = "comboTraceMode"; - this.comboTraceMode.Size = new System.Drawing.Size(221, 21); + this.comboTraceMode.Size = new System.Drawing.Size(293, 24); this.comboTraceMode.TabIndex = 10; // // cmboCosmosDebugPort @@ -468,9 +520,10 @@ "Serial Com2", "Serial Com3", "Serial Com4"}); - this.cmboCosmosDebugPort.Location = new System.Drawing.Point(23, 208); + this.cmboCosmosDebugPort.Location = new System.Drawing.Point(31, 256); + this.cmboCosmosDebugPort.Margin = new System.Windows.Forms.Padding(4); this.cmboCosmosDebugPort.Name = "cmboCosmosDebugPort"; - this.cmboCosmosDebugPort.Size = new System.Drawing.Size(221, 21); + this.cmboCosmosDebugPort.Size = new System.Drawing.Size(293, 24); this.cmboCosmosDebugPort.Sorted = true; this.cmboCosmosDebugPort.TabIndex = 12; // @@ -478,17 +531,19 @@ // this.comboDebugMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboDebugMode.FormattingEnabled = true; - this.comboDebugMode.Location = new System.Drawing.Point(23, 61); + this.comboDebugMode.Location = new System.Drawing.Point(31, 75); + this.comboDebugMode.Margin = new System.Windows.Forms.Padding(4); this.comboDebugMode.Name = "comboDebugMode"; - this.comboDebugMode.Size = new System.Drawing.Size(221, 21); + this.comboDebugMode.Size = new System.Drawing.Size(293, 24); this.comboDebugMode.TabIndex = 9; // // label10 // this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(9, 237); + this.label10.Location = new System.Drawing.Point(12, 292); + this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(93, 13); + this.label10.Size = new System.Drawing.Size(124, 17); this.label10.TabIndex = 30; this.label10.Text = "Visual Studio Port:"; // @@ -496,10 +551,10 @@ // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(5, 88); - this.label5.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.label5.Location = new System.Drawing.Point(7, 108); + this.label5.Margin = new System.Windows.Forms.Padding(0, 4, 0, 4); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(50, 15); + this.label5.Size = new System.Drawing.Size(61, 20); this.label5.TabIndex = 26; this.label5.Text = "Tracing:"; this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -507,18 +562,20 @@ // label9 // this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(9, 185); + this.label9.Location = new System.Drawing.Point(12, 228); + this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(69, 13); + this.label9.Size = new System.Drawing.Size(92, 17); this.label9.TabIndex = 29; this.label9.Text = "Cosmos Port:"; // // checkIgnoreDebugStubAttribute // this.checkIgnoreDebugStubAttribute.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.checkIgnoreDebugStubAttribute.Location = new System.Drawing.Point(8, 150); + this.checkIgnoreDebugStubAttribute.Location = new System.Drawing.Point(11, 185); + this.checkIgnoreDebugStubAttribute.Margin = new System.Windows.Forms.Padding(4); this.checkIgnoreDebugStubAttribute.Name = "checkIgnoreDebugStubAttribute"; - this.checkIgnoreDebugStubAttribute.Size = new System.Drawing.Size(218, 20); + this.checkIgnoreDebugStubAttribute.Size = new System.Drawing.Size(291, 25); this.checkIgnoreDebugStubAttribute.TabIndex = 11; this.checkIgnoreDebugStubAttribute.Text = "Ignore DebugStub Attribute Settings"; this.checkIgnoreDebugStubAttribute.UseVisualStyleBackColor = true; @@ -526,9 +583,10 @@ // tabDeployment // this.tabDeployment.Controls.Add(this.lboxDeployment); - this.tabDeployment.Location = new System.Drawing.Point(4, 22); + this.tabDeployment.Location = new System.Drawing.Point(4, 25); + this.tabDeployment.Margin = new System.Windows.Forms.Padding(4); this.tabDeployment.Name = "tabDeployment"; - this.tabDeployment.Size = new System.Drawing.Size(627, 387); + this.tabDeployment.Size = new System.Drawing.Size(839, 479); this.tabDeployment.TabIndex = 11; this.tabDeployment.Text = "Deployment"; this.tabDeployment.UseVisualStyleBackColor = true; @@ -537,18 +595,21 @@ // this.lboxDeployment.Dock = System.Windows.Forms.DockStyle.Left; this.lboxDeployment.FormattingEnabled = true; + this.lboxDeployment.ItemHeight = 16; this.lboxDeployment.Location = new System.Drawing.Point(0, 0); + this.lboxDeployment.Margin = new System.Windows.Forms.Padding(4); this.lboxDeployment.Name = "lboxDeployment"; - this.lboxDeployment.Size = new System.Drawing.Size(206, 387); + this.lboxDeployment.Size = new System.Drawing.Size(273, 479); this.lboxDeployment.Sorted = true; this.lboxDeployment.TabIndex = 15; // // tabLaunch // this.tabLaunch.Controls.Add(this.lboxLaunch); - this.tabLaunch.Location = new System.Drawing.Point(4, 22); + this.tabLaunch.Location = new System.Drawing.Point(4, 25); + this.tabLaunch.Margin = new System.Windows.Forms.Padding(4); this.tabLaunch.Name = "tabLaunch"; - this.tabLaunch.Size = new System.Drawing.Size(627, 387); + this.tabLaunch.Size = new System.Drawing.Size(839, 479); this.tabLaunch.TabIndex = 12; this.tabLaunch.Text = "Launch"; this.tabLaunch.UseVisualStyleBackColor = true; @@ -557,9 +618,11 @@ // this.lboxLaunch.Dock = System.Windows.Forms.DockStyle.Left; this.lboxLaunch.FormattingEnabled = true; + this.lboxLaunch.ItemHeight = 16; this.lboxLaunch.Location = new System.Drawing.Point(0, 0); + this.lboxLaunch.Margin = new System.Windows.Forms.Padding(4); this.lboxLaunch.Name = "lboxLaunch"; - this.lboxLaunch.Size = new System.Drawing.Size(206, 387); + this.lboxLaunch.Size = new System.Drawing.Size(273, 479); this.lboxLaunch.Sorted = true; this.lboxLaunch.TabIndex = 16; // @@ -569,10 +632,11 @@ this.tabVMware.Controls.Add(this.checkStartCosmosGDB); this.tabVMware.Controls.Add(this.label3); this.tabVMware.Controls.Add(this.cmboVMwareEdition); - this.tabVMware.Location = new System.Drawing.Point(4, 22); + this.tabVMware.Location = new System.Drawing.Point(4, 25); + this.tabVMware.Margin = new System.Windows.Forms.Padding(4); this.tabVMware.Name = "tabVMware"; - this.tabVMware.Padding = new System.Windows.Forms.Padding(3); - this.tabVMware.Size = new System.Drawing.Size(627, 387); + this.tabVMware.Padding = new System.Windows.Forms.Padding(4); + this.tabVMware.Size = new System.Drawing.Size(839, 479); this.tabVMware.TabIndex = 4; this.tabVMware.Text = "VMware"; this.tabVMware.UseVisualStyleBackColor = true; @@ -580,9 +644,10 @@ // checkEnableGDB // this.checkEnableGDB.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.checkEnableGDB.Location = new System.Drawing.Point(9, 77); + this.checkEnableGDB.Location = new System.Drawing.Point(12, 95); + this.checkEnableGDB.Margin = new System.Windows.Forms.Padding(4); this.checkEnableGDB.Name = "checkEnableGDB"; - this.checkEnableGDB.Size = new System.Drawing.Size(218, 20); + this.checkEnableGDB.Size = new System.Drawing.Size(291, 25); this.checkEnableGDB.TabIndex = 19; this.checkEnableGDB.Text = "Enable GDB Debugger"; this.checkEnableGDB.UseVisualStyleBackColor = true; @@ -591,10 +656,10 @@ // this.checkStartCosmosGDB.AutoSize = true; this.checkStartCosmosGDB.Enabled = false; - this.checkStartCosmosGDB.Location = new System.Drawing.Point(24, 103); - this.checkStartCosmosGDB.Margin = new System.Windows.Forms.Padding(25, 3, 3, 3); + this.checkStartCosmosGDB.Location = new System.Drawing.Point(32, 127); + this.checkStartCosmosGDB.Margin = new System.Windows.Forms.Padding(33, 4, 4, 4); this.checkStartCosmosGDB.Name = "checkStartCosmosGDB"; - this.checkStartCosmosGDB.Size = new System.Drawing.Size(140, 17); + this.checkStartCosmosGDB.Size = new System.Drawing.Size(182, 21); this.checkStartCosmosGDB.TabIndex = 20; this.checkStartCosmosGDB.Text = "Use Cosmos GDB Client"; this.checkStartCosmosGDB.UseVisualStyleBackColor = true; @@ -602,9 +667,10 @@ // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(6, 12); + this.label3.Location = new System.Drawing.Point(8, 15); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(42, 13); + this.label3.Size = new System.Drawing.Size(55, 17); this.label3.TabIndex = 18; this.label3.Text = "Edition:"; // @@ -612,19 +678,21 @@ // this.cmboVMwareEdition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmboVMwareEdition.FormattingEnabled = true; - this.cmboVMwareEdition.Location = new System.Drawing.Point(26, 37); + this.cmboVMwareEdition.Location = new System.Drawing.Point(35, 46); + this.cmboVMwareEdition.Margin = new System.Windows.Forms.Padding(4); this.cmboVMwareEdition.Name = "cmboVMwareEdition"; - this.cmboVMwareEdition.Size = new System.Drawing.Size(143, 21); + this.cmboVMwareEdition.Size = new System.Drawing.Size(189, 24); this.cmboVMwareEdition.Sorted = true; this.cmboVMwareEdition.TabIndex = 18; // // tabBochs // this.tabBochs.Controls.Add(this.checkEnableBochsDebug); - this.tabBochs.Location = new System.Drawing.Point(4, 22); + this.tabBochs.Location = new System.Drawing.Point(4, 25); + this.tabBochs.Margin = new System.Windows.Forms.Padding(4); this.tabBochs.Name = "tabBochs"; - this.tabBochs.Padding = new System.Windows.Forms.Padding(3); - this.tabBochs.Size = new System.Drawing.Size(627, 387); + this.tabBochs.Padding = new System.Windows.Forms.Padding(4); + this.tabBochs.Size = new System.Drawing.Size(839, 479); this.tabBochs.TabIndex = 5; this.tabBochs.Text = "Bochs"; this.tabBochs.UseVisualStyleBackColor = true; @@ -632,9 +700,10 @@ // checkEnableBochsDebug // this.checkEnableBochsDebug.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.checkEnableBochsDebug.Location = new System.Drawing.Point(9, 12); + this.checkEnableBochsDebug.Location = new System.Drawing.Point(12, 15); + this.checkEnableBochsDebug.Margin = new System.Windows.Forms.Padding(4); this.checkEnableBochsDebug.Name = "checkEnableBochsDebug"; - this.checkEnableBochsDebug.Size = new System.Drawing.Size(218, 20); + this.checkEnableBochsDebug.Size = new System.Drawing.Size(291, 25); this.checkEnableBochsDebug.TabIndex = 21; this.checkEnableBochsDebug.Text = "Enable Bochs Debugger"; this.checkEnableBochsDebug.UseVisualStyleBackColor = true; @@ -643,46 +712,51 @@ // this.tabPXE.Controls.Add(this.textPxeInterface); this.tabPXE.Controls.Add(this.label1); - this.tabPXE.Location = new System.Drawing.Point(4, 22); + this.tabPXE.Location = new System.Drawing.Point(4, 25); + this.tabPXE.Margin = new System.Windows.Forms.Padding(4); this.tabPXE.Name = "tabPXE"; - this.tabPXE.Padding = new System.Windows.Forms.Padding(3); - this.tabPXE.Size = new System.Drawing.Size(627, 387); + this.tabPXE.Padding = new System.Windows.Forms.Padding(4); + this.tabPXE.Size = new System.Drawing.Size(839, 479); this.tabPXE.TabIndex = 6; this.tabPXE.Text = "PXE"; this.tabPXE.UseVisualStyleBackColor = true; // // textPxeInterface // - this.textPxeInterface.Location = new System.Drawing.Point(28, 32); + this.textPxeInterface.Location = new System.Drawing.Point(37, 39); + this.textPxeInterface.Margin = new System.Windows.Forms.Padding(4); this.textPxeInterface.Name = "textPxeInterface"; - this.textPxeInterface.Size = new System.Drawing.Size(146, 20); + this.textPxeInterface.Size = new System.Drawing.Size(193, 22); this.textPxeInterface.TabIndex = 22; // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(13, 16); + this.label1.Location = new System.Drawing.Point(17, 20); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(52, 13); + this.label1.Size = new System.Drawing.Size(67, 17); this.label1.TabIndex = 0; this.label1.Text = "Interface:"; // // tabUSB // this.tabUSB.Controls.Add(this.label7); - this.tabUSB.Location = new System.Drawing.Point(4, 22); + this.tabUSB.Location = new System.Drawing.Point(4, 25); + this.tabUSB.Margin = new System.Windows.Forms.Padding(4); this.tabUSB.Name = "tabUSB"; - this.tabUSB.Padding = new System.Windows.Forms.Padding(3); - this.tabUSB.Size = new System.Drawing.Size(627, 387); + this.tabUSB.Padding = new System.Windows.Forms.Padding(4); + this.tabUSB.Size = new System.Drawing.Size(839, 479); this.tabUSB.TabIndex = 7; this.tabUSB.Text = "USB"; this.tabUSB.UseVisualStyleBackColor = true; // // label7 // - this.label7.Location = new System.Drawing.Point(16, 15); + this.label7.Location = new System.Drawing.Point(21, 18); + this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(375, 102); + this.label7.Size = new System.Drawing.Size(500, 126); this.label7.TabIndex = 1; this.label7.Text = "There are no current USB options. The target drive will be requested when you run" + " the project."; @@ -690,19 +764,21 @@ // tabISO // this.tabISO.Controls.Add(this.label8); - this.tabISO.Location = new System.Drawing.Point(4, 22); + this.tabISO.Location = new System.Drawing.Point(4, 25); + this.tabISO.Margin = new System.Windows.Forms.Padding(4); this.tabISO.Name = "tabISO"; - this.tabISO.Padding = new System.Windows.Forms.Padding(3); - this.tabISO.Size = new System.Drawing.Size(627, 387); + this.tabISO.Padding = new System.Windows.Forms.Padding(4); + this.tabISO.Size = new System.Drawing.Size(839, 479); this.tabISO.TabIndex = 8; this.tabISO.Text = "ISO"; this.tabISO.UseVisualStyleBackColor = true; // // label8 // - this.label8.Location = new System.Drawing.Point(17, 16); + this.label8.Location = new System.Drawing.Point(23, 20); + this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(375, 102); + this.label8.Size = new System.Drawing.Size(500, 126); this.label8.TabIndex = 1; this.label8.Text = "There are currently no ISO options."; // @@ -710,10 +786,11 @@ // this.tabSlave.Controls.Add(this.cmboSlavePort); this.tabSlave.Controls.Add(this.label6); - this.tabSlave.Location = new System.Drawing.Point(4, 22); + this.tabSlave.Location = new System.Drawing.Point(4, 25); + this.tabSlave.Margin = new System.Windows.Forms.Padding(4); this.tabSlave.Name = "tabSlave"; - this.tabSlave.Padding = new System.Windows.Forms.Padding(3); - this.tabSlave.Size = new System.Drawing.Size(627, 387); + this.tabSlave.Padding = new System.Windows.Forms.Padding(4); + this.tabSlave.Size = new System.Drawing.Size(839, 479); this.tabSlave.TabIndex = 13; this.tabSlave.Text = "Slave"; this.tabSlave.UseVisualStyleBackColor = true; @@ -728,29 +805,32 @@ "Serial Com2", "Serial Com3", "Serial Com4"}); - this.cmboSlavePort.Location = new System.Drawing.Point(30, 31); + this.cmboSlavePort.Location = new System.Drawing.Point(40, 38); + this.cmboSlavePort.Margin = new System.Windows.Forms.Padding(4); this.cmboSlavePort.Name = "cmboSlavePort"; - this.cmboSlavePort.Size = new System.Drawing.Size(146, 21); + this.cmboSlavePort.Size = new System.Drawing.Size(193, 24); this.cmboSlavePort.Sorted = true; this.cmboSlavePort.TabIndex = 23; // // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(15, 15); + this.label6.Location = new System.Drawing.Point(20, 18); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(59, 13); + this.label6.Size = new System.Drawing.Size(77, 17); this.label6.TabIndex = 34; this.label6.Text = "Slave Port:"; // // CosmosPage // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.TabControl1); this.Controls.Add(this.panel1); + this.Margin = new System.Windows.Forms.Padding(4); this.Name = "CosmosPage"; - this.Size = new System.Drawing.Size(635, 456); + this.Size = new System.Drawing.Size(847, 561); this.Title = "Cosmos"; this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); @@ -843,6 +923,8 @@ private System.Windows.Forms.ComboBox cmboSlavePort; private System.Windows.Forms.Label label6; private System.Windows.Forms.CheckBox chkEnableStackCorruptionDetection; + private System.Windows.Forms.Label labelBinFormat; + private System.Windows.Forms.ComboBox comboBinFormat; diff --git a/source/Cosmos.VS.Package/CosmosPage.cs b/source/Cosmos.VS.Package/CosmosPage.cs index 1da09f6fe..a412146bc 100644 --- a/source/Cosmos.VS.Package/CosmosPage.cs +++ b/source/Cosmos.VS.Package/CosmosPage.cs @@ -5,6 +5,7 @@ using System.IO; using System.IO.Ports; using System.Drawing; using System.Data; +using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; @@ -192,6 +193,7 @@ namespace Cosmos.VS.Package { cmboVisualStudioDebugPort.SelectedIndex = cmboVisualStudioDebugPort.Items.IndexOf(mProps.VisualStudioDebugPort); textOutputPath.Text = mProps.OutputPath; comboFramework.SelectedItem = EnumValue.Find(comboFramework.Items, mProps.Framework); + comboBinFormat.SelectedItem = EnumValue.Find(comboBinFormat.Items, mProps.BinFormat); checkUseInternalAssembler.Checked = mProps.UseInternalAssembler; checkEnableGDB.Checked = mProps.EnableGDB; checkStartCosmosGDB.Checked = mProps.StartCosmosGDB; @@ -322,6 +324,15 @@ namespace Cosmos.VS.Package { IsDirty = true; } }; + comboBinFormat.SelectedIndexChanged += delegate(Object sender, EventArgs e) + { + var value = (BinFormat)((EnumValue)comboBinFormat.SelectedItem).Value; + if (value != mProps.BinFormat) + { + mProps.BinFormat = value; + IsDirty = true; + } + }; textOutputPath.TextChanged += delegate(Object sender, EventArgs e) { string value = textOutputPath.Text; @@ -519,14 +530,34 @@ namespace Cosmos.VS.Package { get { return mProps; } } + /// + /// Load project independent properties. + /// + protected void LoadProjectProps() + { + foreach (var propertyName in mProps.ProjectIndependentProperties) + { + var propertyValue = ProjectMgr.GetProjectProperty(propertyName); + mProps.SetProperty(propertyName, propertyValue); + } + } + + /// + /// Load properties for the given profile. + /// + /// Name of the profile for which load properties. protected void LoadProfileProps(string aPrefix) { string xPrefix = aPrefix + (aPrefix == "" ? "" : "_"); foreach (var xName in BuildProperties.PropNames) { - string xValue = ProjectConfigs[0].GetConfigurationProperty(xPrefix + xName, false); - // This is important that we dont copy empty values, so instead the defaults will be used. - if (!string.IsNullOrWhiteSpace(xValue)) { - mProps.SetProperty(xPrefix + xName, xValue); - } + if (!mProps.ProjectIndependentProperties.Contains(xName)) + { + string xValue = ProjectConfigs[0].GetConfigurationProperty(xPrefix + xName, false); + // This is important that we dont copy empty values, so instead the defaults will be used. + if (!string.IsNullOrWhiteSpace(xValue)) + { + mProps.SetProperty(xPrefix + xName, xValue); + } + } } } @@ -539,6 +570,8 @@ namespace Cosmos.VS.Package { // Get selected profile mProps.SetProperty(BuildProperties.ProfileString, ProjectConfigs[0].GetConfigurationProperty(BuildProperties.ProfileString, true)); + LoadProjectProps(); + // Load selected profile props LoadProfileProps(""); foreach (var xPreset in mPresets) { @@ -566,6 +599,7 @@ namespace Cosmos.VS.Package { lboxDeployment.Items.AddRange(EnumValue.GetEnumValues(typeof(DeploymentType), true)); comboFramework.Items.AddRange(EnumValue.GetEnumValues(typeof(Framework), true)); + comboBinFormat.Items.AddRange(EnumValue.GetEnumValues(typeof(BinFormat), true)); lboxLaunch.Items.AddRange(EnumValue.GetEnumValues(typeof(LaunchType), true)); #region VMware diff --git a/source/Cosmos.VS.Package/CosmosPage.resx b/source/Cosmos.VS.Package/CosmosPage.resx index 30139e841..80f177ba2 100644 --- a/source/Cosmos.VS.Package/CosmosPage.resx +++ b/source/Cosmos.VS.Package/CosmosPage.resx @@ -124,7 +124,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHkSURBVDhPvZHfS1NhHIf3p5QypLr2D4goMwoMCi/qIugH + YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAHkSURBVDhPvZHfS1NhHIf3p5QypLr2D4goMwoMCi/qIugH Xe1Cr7qKDIMkZixwNhfWLGWbnuki0kXKzLU023KubBNPJrbRdOzocm6e2dPOO21mMS+CHvjcvOf9PF++ 79H9M+7RT2iRRsIi9sEAXe43yAvf2LpSHq28G9uAnytNT4jMLewtcQ2Ht2pF8ps/aOt+gccX5lxD694S +1BQFD1RkN5DSFa4Z3uONKbgHE3h8KZ4OJTC1J8UiSzmfhd2uf1CoJHbyKOsZokl0kKwm+aeJaov+wjO @@ -138,7 +138,7 @@ iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH8SURBVDhPnZJtS1NhGMf3GQqqV1GQRQ+o5WqbbmcP5dwK + YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAH8SURBVDhPnZJtS1NhGMf3GQqqV1GQRQ+o5WqbbmcP5dwK SiIsFqwXBS32QmYNpJjl5rL6BEHPlCGCYBREWW6ZGGpu5jBXahtbe1LzK/w659iUcU4v6sX/hvvm/7uv i+v6a0rLK/yvZHgiFqfN7yc6/JHi0i9Vo5o0hcVlnvf2YbUeweF08vrNW6Q3NXO+tMRM8hvPenrku0Z6 6O3rp9V3GZ3BhNVm5/6DR4oPsvkS7yIfaD7RTDAUXoWlIzn3g5HRMXxtfuqNZgSzhY5AgEyu8Acscr2z @@ -153,7 +153,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc diff --git a/source/Cosmos.VS.Package/CustomPropertyPage.cs b/source/Cosmos.VS.Package/CustomPropertyPage.cs index 83b6e26e8..4949e1659 100644 --- a/source/Cosmos.VS.Package/CustomPropertyPage.cs +++ b/source/Cosmos.VS.Package/CustomPropertyPage.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; +using System.Linq; using System.Runtime.InteropServices; using System.Windows.Forms; using Microsoft.VisualStudio; @@ -107,15 +108,42 @@ namespace Cosmos.VS.Package { public virtual void ApplyChanges() { if (this.Properties != null) { var properties = Properties.GetProperties(); - + var independentProperties = Properties.ProjectIndependentProperties; foreach (KeyValuePair pair in properties) { - SetConfigProperty(pair.Key, pair.Value); + var propertyName = pair.Key; + if (independentProperties.Contains(propertyName)) + { + SetProjectProperty(pair.Key, pair.Value); + } + else + { + SetConfigProperty(pair.Key, pair.Value); + } } this.IsDirty = false; } } + /// + /// Sets project specific property. + /// + /// Name of the property to set. + /// Value of the property. + public virtual void SetProjectProperty(String name, String value) + { + CCITracing.TraceCall(); + if (value == null) + { + value = String.Empty; + } + + if (this.ProjectMgr != null) + { + this.ProjectMgr.SetProjectProperty(name, value); + } + } + public virtual void SetConfigProperty(String name, String value) { CCITracing.TraceCall(); if (value == null) { diff --git a/source/Cosmos.sln b/source/Cosmos.sln index 6c87052b9..f9b78b6ce 100644 --- a/source/Cosmos.sln +++ b/source/Cosmos.sln @@ -205,6 +205,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PlaygroundCore", "..\Users\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.IL2CPU.Tests", "Cosmos.IL2CPU.Tests\Cosmos.IL2CPU.Tests.csproj", "{17329379-67D5-45D2-8EF0-9C625C43E117}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Build.Common.Tests", "Cosmos.Build.Common.Tests\Cosmos.Build.Common.Tests.csproj", "{C1D525C4-B072-4F2F-94BF-4862E6727C4B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1002,6 +1004,18 @@ Global {17329379-67D5-45D2-8EF0-9C625C43E117}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {17329379-67D5-45D2-8EF0-9C625C43E117}.Release|Mixed Platforms.Build.0 = Release|Any CPU {17329379-67D5-45D2-8EF0-9C625C43E117}.Release|x86.ActiveCfg = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|Itanium.ActiveCfg = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|Itanium.ActiveCfg = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C1D525C4-B072-4F2F-94BF-4862E6727C4B}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1079,5 +1093,6 @@ Global {6128DEEB-D30F-4859-B60F-C36D5452F3E9} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6} {AB869246-4887-4117-851D-766EB9FF1E29} = {A0073D91-D9D3-4A90-9845-10E5CDBA5511} {17329379-67D5-45D2-8EF0-9C625C43E117} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6} + {C1D525C4-B072-4F2F-94BF-4862E6727C4B} = {D95021E1-A2C9-4829-819E-ED433AF13162} EndGlobalSection EndGlobal