[sgen] Untag the vtable during concurrent mark
[mono.git] / mcs / class / Microsoft.Build.Tasks / Microsoft.Build.Tasks / Vbc.cs
index 107f9eb289621903f7154bed2d4c7054c70196ff..cf56b148f117e2427363568d8a2be911ea64e807 100644 (file)
@@ -26,7 +26,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-#if NET_2_0
 
 using System;
 using System.IO;
@@ -74,6 +73,8 @@ namespace Microsoft.Build.Tasks {
                        commandLine.AppendSwitchIfNotNull ("/main:", MainEntryPoint);
 
                        // NoStandardLib
+                       if (Bag ["NoStandardLib"] != null && NoStandardLib)
+                               commandLine.AppendSwitch ("/nostdlib");
                        
                        if (NoWarnings)
                                commandLine.AppendSwitch ("/nowarn");
@@ -92,6 +93,12 @@ namespace Microsoft.Build.Tasks {
                                else
                                        commandLine.AppendSwitch ("/optionstrict-");
 
+                       if (Bag ["OptionInfer"] != null)
+                               if (OptionInfer)
+                                       commandLine.AppendSwitch ("/optioninfer+");
+                               else
+                                       commandLine.AppendSwitch ("/optioninfer-");
+
                        // OptionStrictType
                        
                        // Platform
@@ -115,6 +122,9 @@ namespace Microsoft.Build.Tasks {
                        commandLine.AppendSwitchIfNotNull ("/sdkpath:", SdkPath);
 
                        // TargetCompactFramework
+
+                       if (String.Compare (VBRuntime, "Embed", StringComparison.OrdinalIgnoreCase) == 0) 
+                               commandLine.AppendSwitch ("/vbruntime*");
                        
                        // Verbosity
 
@@ -158,7 +168,7 @@ namespace Microsoft.Build.Tasks {
                        return true;
                }
 
-               protected override void LogEventsFromTextOutput (string singleLine, MessageImportance importance)
+               protected override void LogEventsFromTextOutput (string singleLine, MessageImportance messageImportance)
                {
                        singleLine = singleLine.Trim ();
                        if (singleLine.Length == 0)
@@ -173,7 +183,7 @@ namespace Microsoft.Build.Tasks {
 
                        Match match = ErrorRegex.Match (singleLine);
                        if (!match.Success) {
-                               Log.LogMessage (importance, singleLine);
+                               Log.LogMessage (messageImportance, singleLine);
                                return;
                        }
 
@@ -198,7 +208,7 @@ namespace Microsoft.Build.Tasks {
                                Log.LogError (null, code, null, filename, lineNumber, columnNumber, -1,
                                        -1, text, null);
                        } else {
-                               Log.LogMessage (importance, singleLine);
+                               Log.LogMessage (messageImportance, singleLine);
                        }
                }
 
@@ -273,6 +283,12 @@ namespace Microsoft.Build.Tasks {
                        get { return (string) Bag ["OptionStrictType"]; }
                        set { Bag ["OptionStrictType"] = value; }
                }
+
+               [MonoTODO]
+               public bool OptionInfer {
+                       get { return GetBoolParameterWithDefault ("OptionInfer", false); }
+                       set { Bag ["OptionInfer"] = value; }
+               }
                
                [MonoTODO]
                public string Platform {
@@ -307,11 +323,7 @@ namespace Microsoft.Build.Tasks {
                [MonoTODO]
                protected override string ToolName {
                        get {
-#if NET_4_0
                                return MSBuildUtils.RunningOnWindows ? "vbnc.bat" : "vbnc";
-#else
-                               return MSBuildUtils.RunningOnWindows ? "vbnc2.bat" : "vbnc2";
-#endif
                        }
                }
 
@@ -321,6 +333,12 @@ namespace Microsoft.Build.Tasks {
                        set { Bag ["UseHostCompilerIfAvailable"] = value; }
                }
 
+               [MonoTODO]
+               public string VBRuntime {
+                       get { return (string) Bag ["VBRuntime"]; }
+                       set { Bag ["VBRuntime"] = value; }
+               }
+
                [MonoTODO]
                public string Verbosity {
                        get { return (string) Bag ["Verbosity"]; }
@@ -355,4 +373,3 @@ namespace Microsoft.Build.Tasks {
        }
 }
 
-#endif