public ConfigurationParameters CreateCompilationParameters (XmlElement projectOptions) { CSharpCompilerParameters pars = new CSharpCompilerParameters (); if (projectOptions != null) { string platform = projectOptions.GetAttribute ("Platform"); if (SupportedPlatforms.Contains (platform)) pars.PlatformTarget = platform; string debugAtt = projectOptions.GetAttribute ("DefineDebug"); if (string.Compare ("True", debugAtt, StringComparison.OrdinalIgnoreCase) == 0) pars.AddDefineSymbol ("DEBUG"); string releaseAtt = projectOptions.GetAttribute ("Release"); if (string.Compare ("True", releaseAtt, StringComparison.OrdinalIgnoreCase) == 0) pars.Optimize = true; } return pars; }
public CompilerOptionsPanelWidget(DotNetProject project) { this.Build(); this.project = project; DotNetProjectConfiguration configuration = (DotNetProjectConfiguration)project.GetConfiguration(IdeApp.Workspace.ActiveConfiguration); CSharpCompilerParameters compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters; CSharpProjectParameters projectParameters = (CSharpProjectParameters)configuration.ProjectParameters; ListStore store = new ListStore(typeof(string)); store.AppendValues(GettextCatalog.GetString("Executable")); store.AppendValues(GettextCatalog.GetString("Library")); store.AppendValues(GettextCatalog.GetString("Executable with GUI")); store.AppendValues(GettextCatalog.GetString("Module")); compileTargetCombo.Model = store; CellRendererText cr = new CellRendererText(); compileTargetCombo.PackStart(cr, true); compileTargetCombo.AddAttribute(cr, "text", 0); compileTargetCombo.Active = (int)configuration.CompileTarget; compileTargetCombo.Changed += new EventHandler(OnTargetChanged); if (project.IsLibraryBasedProjectType) { //fixme: should we totally hide these? compileTargetCombo.Sensitive = false; mainClassEntry.Sensitive = false; } else { classListStore = new ListStore(typeof(string)); mainClassEntry.Model = classListStore; mainClassEntry.TextColumn = 0; ((Entry)mainClassEntry.Child).Text = projectParameters.MainClass ?? string.Empty; UpdateTarget(); } // Load the codepage. If it matches any of the supported encodigs, use the encoding name string foundEncoding = null; foreach (TextEncoding e in TextEncoding.SupportedEncodings) { if (e.CodePage == -1) { continue; } if (e.CodePage == projectParameters.CodePage) { foundEncoding = e.Id; } codepageEntry.AppendText(e.Id); } if (foundEncoding != null) { codepageEntry.Entry.Text = foundEncoding; } else if (projectParameters.CodePage != 0) { codepageEntry.Entry.Text = projectParameters.CodePage.ToString(); } iconEntry.Path = projectParameters.Win32Icon; iconEntry.DefaultPath = project.BaseDirectory; allowUnsafeCodeCheckButton.Active = compilerParameters.UnsafeCode; noStdLibCheckButton.Active = compilerParameters.NoStdLib; ListStore langVerStore = new ListStore(typeof(string)); langVerStore.AppendValues(GettextCatalog.GetString("Default")); langVerStore.AppendValues("ISO-1"); langVerStore.AppendValues("ISO-2"); langVerStore.AppendValues("Version 3"); langVerStore.AppendValues("Version 4"); langVerStore.AppendValues("Version 5"); langVerCombo.Model = langVerStore; langVerCombo.Active = (int)compilerParameters.LangVersion; }
public void Store(ItemConfigurationCollection <ItemConfiguration> configs) { int codePage; CompileTarget compileTarget = (CompileTarget)compileTargetCombo.Active; LangVersion langVersion = (LangVersion)langVerCombo.Active; if (codepageEntry.Entry.Text.Length > 0) { // Get the codepage. If the user specified an encoding name, find it. int trialCodePage = -1; foreach (TextEncoding e in TextEncoding.SupportedEncodings) { if (e.Id == codepageEntry.Entry.Text) { trialCodePage = e.CodePage; break; } } if (trialCodePage != -1) { codePage = trialCodePage; } else { if (!int.TryParse(codepageEntry.Entry.Text, out trialCodePage)) { return; } codePage = trialCodePage; } } else { codePage = 0; } project.CompileTarget = compileTarget; CSharpProjectParameters projectParameters = (CSharpProjectParameters)project.LanguageParameters; projectParameters.CodePage = codePage; if (iconEntry.Sensitive) { projectParameters.Win32Icon = iconEntry.Path; } if (mainClassEntry.Sensitive) { projectParameters.MainClass = mainClassEntry.Entry.Text; } foreach (DotNetProjectConfiguration configuration in configs) { CSharpCompilerParameters compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters; compilerParameters.UnsafeCode = allowUnsafeCodeCheckButton.Active; compilerParameters.NoStdLib = noStdLibCheckButton.Active; compilerParameters.LangVersion = langVersion; } }