bool BuildDependencies(out bool executeOnErrors)
        {
            executeOnErrors = false;

            if (String.IsNullOrEmpty(DependsOnTargets))
            {
                return(true);
            }

            var expr = new Expression();

            expr.Parse(DependsOnTargets, ParseOptions.AllowItemsNoMetadataAndSplit);
            string [] targetNames = (string [])expr.ConvertTo(Project, typeof(string []));

            bool result = BuildOtherTargets(targetNames,
                                            tname => engine.LogError("Target '{0}', a dependency of target '{1}', not found.",
                                                                     tname, Name),
                                            out executeOnErrors);

            if (!result && executeOnErrors)
            {
                ExecuteOnErrors();
            }

            return(result);
        }