Merge pull request #1652 from debuglevel/bugfix-crosscompile
[mono.git] / mcs / mcs / settings.cs
index 5e56f614f232f985a567d6ec9d7d3f2029cee2a1..42156d77ba9ab630a1abc513ac49c84cb28aee97 100644 (file)
@@ -28,9 +28,10 @@ namespace Mono.CSharp {
                V_3 = 3,
                V_4 = 4,
                V_5 = 5,
-               Future = 100,
+               V_6 = 6,
+               Experimental = 100,
 
-               Default = LanguageVersion.Future,
+               Default = LanguageVersion.V_6,
        }
 
        public enum RuntimeVersion
@@ -149,6 +150,8 @@ namespace Mono.CSharp {
                public bool BreakOnInternalError;
                #endregion
 
+               public string GetResourceStrings;
+
                public bool ShowFullPaths;
 
                //
@@ -1136,11 +1139,13 @@ namespace Mono.CSharp {
 
                                switch (value.ToLowerInvariant ()) {
                                case "iso-1":
+                               case "1":
                                        settings.Version = LanguageVersion.ISO_1;
                                        return ParseResult.Success;
                                case "default":
                                        settings.Version = LanguageVersion.Default;
                                        return ParseResult.Success;
+                               case "2":
                                case "iso-2":
                                        settings.Version = LanguageVersion.ISO_2;
                                        return ParseResult.Success;
@@ -1153,12 +1158,18 @@ namespace Mono.CSharp {
                                case "5":
                                        settings.Version = LanguageVersion.V_5;
                                        return ParseResult.Success;
-                               case "future":
-                                       settings.Version = LanguageVersion.Future;
+                               case "6":
+                                       settings.Version = LanguageVersion.V_6;
+                                       return ParseResult.Success;
+                               case "experimental":
+                                       settings.Version = LanguageVersion.Experimental;
                                        return ParseResult.Success;
+                               case "future":
+                                       report.Warning (8000, 1, "Language version `future' is no longer supported");
+                                       goto case "6";
                                }
 
-                               report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', `3', `4', `5', `Default' or `Future'", value);
+                               report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', Default or value in range 1 to 6", value);
                                return ParseResult.Error;
 
                        case "/codepage":
@@ -1439,7 +1450,7 @@ namespace Mono.CSharp {
                                return ParseResult.Success;
 
                        default:
-                               if (arg.StartsWith ("--fatal", StringComparison.Ordinal)){
+                               if (arg.StartsWith ("--fatal", StringComparison.Ordinal)) {
                                        int fatal = 1;
                                        if (arg.StartsWith ("--fatal=", StringComparison.Ordinal))
                                                int.TryParse (arg.Substring (8), out fatal);
@@ -1467,6 +1478,17 @@ namespace Mono.CSharp {
                                        return ParseResult.Success;
                                }
 
+                               if (arg.StartsWith ("--getresourcestrings:", StringComparison.Ordinal)) {
+                                       string file = arg.Substring (21).Trim ();
+                                       if (file.Length < 1) {
+                                               Error_RequiresArgument (arg);
+                                               return ParseResult.Error;
+                                       }
+
+                                       settings.GetResourceStrings = file;
+                                       return ParseResult.Success;
+                               }
+
                                return ParseResult.UnknownOption;
                        }
                }