~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
27
//
28
28
using System;
29
 
using System.Xml;
30
 
using System.Diagnostics;
31
 
using System.ComponentModel;
 
29
using System.Collections.Generic;
 
30
 
32
31
using MonoDevelop.Projects;
33
32
using MonoDevelop.Core.Serialization;
34
33
 
37
36
        public enum LangVersion {
38
37
                Default = 0,
39
38
                ISO_1   = 1,
40
 
                ISO_2   = 2
 
39
                ISO_2   = 2,
 
40
                Version3 = 3,
 
41
                Version4 = 4,
 
42
                Version5 = 5
41
43
        }
42
44
        
43
45
        /// <summary>
85
87
                
86
88
                [ItemProperty("WarningsNotAsErrors", DefaultValue="")]
87
89
                string warningsNotAsErrors = "";
88
 
                
 
90
 
 
91
                [ItemProperty("DebugType", DefaultValue="")]
 
92
                string debugType = "";
89
93
                
90
94
                #region Members required for backwards compatibility. Not used for anything else.
91
95
                
137
141
                
138
142
                public LangVersion LangVersion {
139
143
                        get {
140
 
                                string val = langVersion.ToString ().Replace ('-','_'); 
141
 
                                return (LangVersion) Enum.Parse (typeof(LangVersion), val); 
 
144
                                var val = TryLangVersionFromString (langVersion);
 
145
                                if (val == null) {
 
146
                                        throw new Exception ("Unknown LangVersion string '" + val + "'");
 
147
                                }
 
148
                                return val.Value;
142
149
                        }
143
150
                        set {
144
 
                                langVersion = value.ToString ().Replace ('_','-'); 
 
151
                                var v = TryLangVersionToString (value);
 
152
                                if (v == null) {
 
153
                                        throw new ArgumentOutOfRangeException ("Unknown LangVersion enum value '" + value + "'");
 
154
                                }
 
155
                                langVersion = v;
145
156
                        }
146
157
                }
147
158
                
148
159
                public override void AddDefineSymbol (string symbol)
149
160
                {
150
 
                        definesymbols += symbol + ";";
151
 
                }
152
 
                
 
161
                        var symbols = new List<string> (definesymbols.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
 
162
 
 
163
                        symbols.Add (symbol);
 
164
 
 
165
                        definesymbols = string.Join (";", symbols) + ";";
 
166
                }
 
167
 
 
168
                public override bool HasDefineSymbol (string symbol)
 
169
                {
 
170
                        var symbols = definesymbols.Split (new char[] { ';' });
 
171
 
 
172
                        foreach (var sym in symbols) {
 
173
                                if (sym == symbol)
 
174
                                        return true;
 
175
                        }
 
176
 
 
177
                        return false;
 
178
                }
 
179
 
153
180
                public override void RemoveDefineSymbol (string symbol)
154
181
                {
155
 
                        definesymbols = definesymbols.Replace (symbol + ";", "");
 
182
                        var symbols = new List<string> (definesymbols.Split (new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
 
183
 
 
184
                        symbols.Remove (symbol);
 
185
 
 
186
                        if (symbols.Count > 0)
 
187
                                definesymbols = string.Join (";", symbols) + ";";
 
188
                        else
 
189
                                definesymbols = string.Empty;
156
190
                }
157
191
                
158
192
#region Code Generation
210
244
                                platformTarget = value ?? string.Empty;
211
245
                        }
212
246
                }
213
 
                
 
247
 
 
248
                public string DebugType {
 
249
                        get {
 
250
                                return debugType;
 
251
                        }
 
252
                        set {
 
253
                                debugType = value;
 
254
                        }
 
255
                }
 
256
 
214
257
#endregion
215
258
 
216
259
#region Errors and Warnings 
259
302
                        }
260
303
                }
261
304
#endregion
 
305
 
 
306
                static LangVersion? TryLangVersionFromString (string value)
 
307
                {
 
308
                        switch (value) {
 
309
                        case "Default": return LangVersion.Default;
 
310
                        case "ISO-1": return LangVersion.ISO_1;
 
311
                        case "ISO-2": return LangVersion.ISO_2;
 
312
                        case "3": return LangVersion.Version3;
 
313
                        case "4": return LangVersion.Version4;
 
314
                        case "5": return LangVersion.Version5;
 
315
                        default: return null;
 
316
                        }
 
317
                }
 
318
 
 
319
                internal static string TryLangVersionToString (LangVersion value)
 
320
                {
 
321
                        switch (value) {
 
322
                        case LangVersion.Default: return "Default";
 
323
                        case LangVersion.ISO_1: return "ISO-1";
 
324
                        case LangVersion.ISO_2: return "ISO-2";
 
325
                        case LangVersion.Version3: return "3";
 
326
                        case LangVersion.Version4: return "4";
 
327
                        case LangVersion.Version5: return "5";
 
328
                        default: return null;
 
329
                        }
 
330
                }
262
331
        }
263
332
}