Наследование: ClrPlus.Scripting.MsBuild.Building.Tasks.MsBuildTaskBase
Пример #1
0
 public static void RemoveBuild(MsBuildEx build)
 {
     lock (_builds) {
         _builds.Remove(build);
     }
 }
Пример #2
0
 public static void RemoveBuild(MsBuildEx build) {
     lock (_builds) {
         _builds.Remove(build);
     }
 }
Пример #3
0
        public override bool Execute()
        {
            while (MsBuildEx.AnyBuildsRunning)
            {
                foreach (var msbuild in MsBuildEx.Builds)
                {
                    // Yeah, as if this ever worked...
                    // (BuildEngine as IBuildEngine3).Yield();
                    BuildMessage message;
                    while (msbuild.Messages.TryDequeue(out message))
                    {
                        if (!Environment.GetEnvironmentVariable("HIDE_THREADS").IsTrue())
                        {
                            message.Message = "{0,4} » {1}".format(msbuild.Index, message.Message);
                        }
                        switch (message.EventType)
                        {
                        case "BuildWarning":
                            Log.LogWarning(message.Subcategory, message.Code, message.HelpKeyword, message.File, message.LineNumber, message.ColumnNumber, message.EndLineNumber, message.EndColumnNumber, message.Message);
                            break;

                        case "BuildError":
                            Log.LogError(message.Subcategory, message.Code, message.HelpKeyword, message.File, message.LineNumber, message.ColumnNumber, message.EndLineNumber, message.EndColumnNumber, message.Message);
                            break;

                        case "ProjectStarted":
                            Log.LogExternalProjectStarted(message.Message, message.HelpKeyword, message.ProjectFile, message.TargetNames);
                            break;

                        case "ProjectFinished":
                            Log.LogExternalProjectFinished(message.Message, message.HelpKeyword, message.ProjectFile, message.Succeeded);
                            break;

                        case "TaskStarted":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "TaskFinished":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "TargetStarted":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "TargetFinished":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "BuildStarted":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "BuildFinished":
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;

                        case "BuildMessage":
                            Log.LogMessage((MessageImportance)message.Importance, message.Message);
                            break;

                        default:
                            // Log.LogMessage(MessageImportance.Low, message.Message);
                            break;
                        }
                    }

                    // psshhhh.
                    // (BuildEngine as IBuildEngine3).Reacquire();

                    if (msbuild.Completed.WaitOne(0))
                    {
                        // remove it from the list of active builds
                        MsBuildEx.RemoveBuild(msbuild);

                        // if it failed, then signal the build as a failure
                        if (!msbuild.Result)
                        {
                            MsBuildEx.KillOutstandingBuilds();
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }