[xbuild] Don't show the deprecation notice for minimal or quiet logging
[mono.git] / mcs / tools / xbuild / Main.cs
index 70a0b7375766f046dd295b047366de8a8c530c0a..e81574d27879487030f093450c810ded1a3fb12b 100644 (file)
@@ -50,8 +50,11 @@ namespace Mono.XBuild.CommandLine {
                Engine          engine;
                Project         project;
                ConsoleReportPrinter printer;
-
                
+#pragma warning disable 169
+               // this does nothing but adds strong reference to Microsoft.Build.Tasks*.dll that we need to load consistently.
+               Microsoft.Build.Tasks.Copy dummy;
+#pragma warning restore
                public static void Main (string[] args)
                {
                        MainClass mc = new MainClass ();
@@ -72,7 +75,14 @@ namespace Mono.XBuild.CommandLine {
                        bool show_stacktrace = false;
                        
                        try {
-                               parameters.ParseArguments (args);
+                               try {
+                                       parameters.ParseArguments (args);
+                               } catch {
+                                       ShowDeprecationNotice ();
+                                       throw;
+                               }
+
+                               ShowDeprecationNotice ();
                                show_stacktrace = (parameters.LoggerVerbosity == LoggerVerbosity.Detailed ||
                                        parameters.LoggerVerbosity == LoggerVerbosity.Diagnostic);
                                
@@ -162,6 +172,17 @@ namespace Mono.XBuild.CommandLine {
                        }
 
                }
+
+               void ShowDeprecationNotice ()
+               {
+                       if (parameters.LoggerVerbosity != LoggerVerbosity.Minimal && parameters.LoggerVerbosity != LoggerVerbosity.Quiet) {
+                               Console.ForegroundColor = ConsoleColor.DarkRed;
+                               Console.WriteLine ();
+                               Console.WriteLine (">>>> xbuild tool is deprecated and will be removed in future updates, use msbuild instead <<<<");
+                               Console.WriteLine ();
+                               Console.ResetColor ();
+                       }
+               }
        }
 
        // code from mcs/report.cs