Merge pull request #2670 from lambdageek/dev/monoerror-mono_runtime_object_init
[mono.git] / mcs / class / Microsoft.Build.Tasks / Microsoft.Build.Tasks / Warning.cs
index 52747f0ab50dc9028247263f0e64464f20ec7312..ab21fae4dd936943cd3df5c9f5c734d68e9e0759 100644 (file)
@@ -25,7 +25,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 Microsoft.Build.Framework;
@@ -34,6 +33,8 @@ using Microsoft.Build.Utilities;
 namespace Microsoft.Build.Tasks {
        public sealed class Warning : TaskExtension {
                
+               string  code;
+               string  helpKeyword;
                string  text;
        
                public Warning ()
@@ -42,24 +43,33 @@ namespace Microsoft.Build.Tasks {
 
                public override bool Execute ()
                {
-                       if (text == null)
-                               text = String.Empty;
-                       Log.LogWarning (null, null, null, BuildEngine.ProjectFileOfTaskNode,
+                       if (String.IsNullOrEmpty (text))
+                               return true;
+
+                       Log.LogWarning (null, code, helpKeyword,
+                               String.IsNullOrEmpty (File) ? BuildEngine.ProjectFileOfTaskNode : File,
                                BuildEngine.LineNumberOfTaskNode, BuildEngine.ColumnNumberOfTaskNode,
                                BuildEngine.LineNumberOfTaskNode, BuildEngine.ColumnNumberOfTaskNode,
                                text, null);
                        return true;
                }
 
+               public string Code {
+                       get { return code; }
+                       set { code = value; }
+               }
+               
+               public string HelpKeyword {
+                       get { return helpKeyword; }
+                       set { helpKeyword = value; }
+               }
+               
                public string Text {
-                       get {
-                               return text;
-                       }
-                       set {
-                               text = value;
-                       }
+                       get { return text; }
+                       set { text = value; }
                }
+
+               public string File { get; set; }
        }
 }
 
-#endif
\ No newline at end of file