Merge branch 'kant2002-Issue-42'

This commit is contained in:
Matthijs ter Woord 2015-05-05 13:58:23 +02:00
commit 7eb52acf62
14 changed files with 579 additions and 161 deletions

View file

@ -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<bool>(BuildProperties.StackCorruptionDetectionEnabledString, true));
Assert.AreEqual(
false,
properties.StackCorruptionDetectionEnabled);
Assert.AreEqual(
"False",
properties.GetProperty(BuildProperties.StackCorruptionDetectionEnabledString));
}
}
}

View file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C1D525C4-B072-4F2F-94BF-4862E6727C4B}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Cosmos.Build.Common.Tests</RootNamespace>
<AssemblyName>Cosmos.Build.Common.Tests</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="EnumValueTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="BuildPropertiesTest.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Cosmos.Build.Common\Cosmos.Build.Common.csproj">
<Project>{0462e82b-8c29-41a9-8265-9c89038adb29}</Project>
<Name>Cosmos.Build.Common</Name>
</ProjectReference>
</ItemGroup>
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
</ItemGroup>
</When>
</Choose>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -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);
}
}
}

View file

@ -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")]

View file

@ -0,0 +1,11 @@
namespace Cosmos.Build.Common
{
/// <summary>
/// Format for the images produced.
/// </summary>
public enum BinFormat
{
Elf,
Bin,
}
}

View file

@ -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);
}
}
/// <summary>
/// Gets array of project names which are project independent.
/// </summary>
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);
/// <summary>
/// Save properties under selected profile.
/// </summary>
/// <param name="aName">Name of the profile for which save properties.</param>
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);
}
}
}
/// <summary>
/// Load properties for the given profile.
/// </summary>
/// <param name="aName">Name of the profile for which load properties.</param>
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") {
@ -221,5 +257,19 @@ namespace Cosmos.Build.Common {
get { return GetProperty(EnableBochsDebugString, false); }
set { SetProperty(EnableBochsDebugString, value); }
}
/// <summary>
/// Name of the configuration property in the project file.
/// </summary>
public const string BinFormatString = "BinFormat";
/// <summary>
/// Gets or sets binary format which is used for producing kernel image.
/// </summary>
public BinFormat BinFormat
{
get { return GetProperty(BinFormatString, BinFormat.Bin); }
set { SetProperty(BinFormatString, value); }
}
}
}

View file

@ -76,6 +76,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BinFormat.cs" />
<Compile Include="BuildProperties.cs" />
<Compile Include="CosmosPaths.cs" />
<Compile Include="Enums.cs" />

View file

@ -7,20 +7,27 @@ namespace Cosmos.Build.Common {
public class EnumValue {
public static T Parse<T>(String value, T @default)
/// <summary>
/// Parse string to enumeration.
/// </summary>
/// <typeparam name="T">Type of enumeration to use.</typeparam>
/// <param name="value">Value which should be parsed as the enumeration.</param>
/// <param name="default">Default value to use, if input string contains invalid value.</param>
/// <returns>Parsed value, or default value if input string is invalid.</returns>
public static T Parse<T>(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;

View file

@ -17,6 +17,11 @@ namespace Cosmos.Build.Common {
return clonedTable;
}
/// <summary>
/// Gets array of project names which are project independent.
/// </summary>
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<T>(string name, T @default) {
/// <summary>
/// Get string value of the property.
/// </summary>
/// <param name="name">Name of the property.</param>
/// <param name="default">Default value for the property.</param>
/// <returns>Vaue of the property with given name.</returns>
public string GetProperty(string name, string @default)
{
string value = @default;
if (mPropTable.ContainsKey(name) == true)
{
value = mPropTable[name];
}
return value;
}
/// <summary>
/// Gets typed value of the property.
/// </summary>
/// <typeparam name="T">Get property type.</typeparam>
/// <param name="name">Get name of the property.</param>
/// <param name="default">Default value for the proeprty.</param>
/// <returns>Value of the property with given name.</returns>
public T GetProperty<T>(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); }

View file

@ -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;

View file

@ -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;

View file

@ -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; }
}
/// <summary>
/// Load project independent properties.
/// </summary>
protected void LoadProjectProps()
{
foreach (var propertyName in mProps.ProjectIndependentProperties)
{
var propertyValue = ProjectMgr.GetProjectProperty(propertyName);
mProps.SetProperty(propertyName, propertyValue);
}
}
/// <summary>
/// Load properties for the given profile.
/// </summary>
/// <param name="aPrefix">Name of the profile for which load properties.</param>
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

View file

@ -124,7 +124,7 @@
<data name="butnProfileClone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHkSURBVDhPvZHfS1NhHIf3p5QypLr2D4goMwoMCi/qIugH
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAHkSURBVDhPvZHfS1NhHIf3p5QypLr2D4goMwoMCi/qIugH
Xe1Cr7qKDIMkZixwNhfWLGWbnuki0kXKzLU023KubBNPJrbRdOzocm6e2dPOO21mMS+CHvjcvOf9PF++
79H9M+7RT2iRRsIi9sEAXe43yAvf2LpSHq28G9uAnytNT4jMLewtcQ2Ht2pF8ps/aOt+gccX5lxD694S
+1BQFD1RkN5DSFa4Z3uONKbgHE3h8KZ4OJTC1J8UiSzmfhd2uf1CoJHbyKOsZokl0kKwm+aeJaov+wjO
@ -138,7 +138,7 @@
<data name="butnProfileDelete.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH8SURBVDhPnZJtS1NhGMf3GQqqV1GQRQ+o5WqbbmcP5dwK
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAH8SURBVDhPnZJtS1NhGMf3GQqqV1GQRQ+o5WqbbmcP5dwK
SiIsFqwXBS32QmYNpJjl5rL6BEHPlCGCYBREWW6ZGGpu5jBXahtbe1LzK/w659iUcU4v6sX/hvvm/7uv
i+v6a0rLK/yvZHgiFqfN7yc6/JHi0i9Vo5o0hcVlnvf2YbUeweF08vrNW6Q3NXO+tMRM8hvPenrku0Z6
6O3rp9V3GZ3BhNVm5/6DR4oPsvkS7yIfaD7RTDAUXoWlIzn3g5HRMXxtfuqNZgSzhY5AgEyu8Acscr2z
@ -153,7 +153,7 @@
<data name="butnProfileRename.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc

View file

@ -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<String, String> 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;
}
}
/// <summary>
/// Sets project specific property.
/// </summary>
/// <param name="name">Name of the property to set.</param>
/// <param name="value">Value of the property.</param>
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) {