diff options
Diffstat (limited to 'main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs')
-rw-r--r-- | main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs index fb6650042d..6a5f2cbbdf 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs @@ -34,6 +34,8 @@ using MonoDevelop.Core; using Mono.Collections.Generic; using System.Linq; using MonoDevelop.Projects.Formats.MSBuild; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; namespace MonoDevelop.CSharp.Project { @@ -112,6 +114,48 @@ namespace MonoDevelop.CSharp.Project } } + public override Microsoft.CodeAnalysis.CompilationOptions CreateCompilationOptions () + { + CSharpProjectParameters cparams; + if (ParentConfiguration != null && ParentConfiguration.ProjectParameters != null) { + cparams = (CSharpProjectParameters)ParentConfiguration.ProjectParameters; + } else { + cparams = new CSharpProjectParameters (); + } + + return new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions ( + OutputKind.ConsoleApplication, + null, + cparams.MainClass, + "Script", + null, + OptimizationLevel.Debug, + GenerateOverflowChecks, + UnsafeCode, + null, + null, + null, + Microsoft.CodeAnalysis.Platform.AnyCpu, + ReportDiagnostic.Default, + WarningLevel, + null, + false, + assemblyIdentityComparer: DesktopAssemblyIdentityComparer.Default + ); + } + + public override Microsoft.CodeAnalysis.ParseOptions CreateParseOptions () + { + return new Microsoft.CodeAnalysis.CSharp.CSharpParseOptions ( + GetRoslynLanguageVersion (langVersion), + Microsoft.CodeAnalysis.DocumentationMode.Parse, + Microsoft.CodeAnalysis.SourceCodeKind.Regular, + ImmutableArray<string>.Empty.AddRange (GetDefineSymbols ()) + ); + + } + + public LangVersion LangVersion { get { var val = TryLangVersionFromString (langVersion); @@ -282,6 +326,19 @@ namespace MonoDevelop.CSharp.Project } } + Microsoft.CodeAnalysis.CSharp.LanguageVersion GetRoslynLanguageVersion (string value) + { + switch (value) { + case "ISO-1": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp1; + case "ISO-2": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp2; + case "3": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp3; + case "4": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp4; + case "5": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp5; + case "6": return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp6; + default: return Microsoft.CodeAnalysis.CSharp.LanguageVersion.CSharp6; + } + } + internal static string TryLangVersionToString (LangVersion value) { switch (value) { |