Пример #1
0
        private bool RecursiveDependencyEval(JobManager jobManager, BuildFile bFile, string targetName)
        {
            var targetInst = bFile.Projects.Find(x => x.Name.Equals(targetName));

            if (targetInst == null)
            {
                DisplayUsage("Target [{0}] does not exist", targetName);
                return(false);
            }

            // check if we have already added an instance of the project to the worker list
            if (jobManager.ContainsWorkerData(targetInst))
            {
                return(true);
            }

            Log.InfoFormat("Adding {0} to worker list", targetInst.Name);
            jobManager.AddWorker(targetInst.Name, targetInst);

            if (_argParser.IsSwitchSet("nodeps"))
            {
                return(true);
            }

            foreach (var depName in targetInst.Dependencies)
            {
                var b = RecursiveDependencyEval(jobManager, bFile, depName);
                if (!b)
                {
                    return(false);
                }
            }

            return(true);
        }