Beispiel #1
0
        IEnumerable <ProjectElement> Import(ProjectImportElement import)
        {
            string dir  = projects.GetEvaluationTimeThisFileDirectory(() => FullPath);
            string path = WindowsCompatibilityExtensions.NormalizeFilePath(ExpandString(import.Project));

            path = Path.IsPathRooted(path) ? path : dir != null?Path.Combine(dir, path) : Path.GetFullPath(path);

            if (projects.OngoingImports.Contains(path))
            {
                throw new InvalidProjectFileException(import.Location, null, string.Format("Circular imports was detected: {0} is already on \"importing\" stack", path));
            }
            projects.OngoingImports.Push(path);
            try {
                using (var reader = XmlReader.Create(path)) {
                    var root = ProjectRootElement.Create(reader, projects);
                    if (DefaultTargets.Count == 0)
                    {
                        DefaultTargets.AddRange(GetDefaultTargets(root));
                    }
                    raw_imports.Add(new ResolvedImport(import, root, true));
                    return(this.EvaluatePropertiesAndImports(root.Children).ToArray());
                }
            } finally {
                projects.OngoingImports.Pop();
            }
        }
        public virtual void LogTargetsHelp(ITaskContextInternal context)
        {
            context.DecreaseDepth();
            context.LogInfo("Targets:");

            // first sort the targets
            var sortedTargets = new SortedList <string, ITargetInternal>();

            foreach (var target in _targets.Values)
            {
                sortedTargets.Add(target.TargetName, target);
            }

            // now display them in sorted order
            foreach (ITargetInternal target in sortedTargets.Values)
            {
                if (target.IsHidden == false)
                {
                    string help = $"  {target.TargetName.Capitalize()}";

                    if (target.Dependencies != null && target.Dependencies.Count != 0)
                    {
                        help = $"{help} ({string.Join(", ", target.Dependencies.GetKeys())})";
                    }

                    help = $"{help} : {target.Description}";

                    if (DefaultTargets.Contains(target))
                    {
#if !NETSTANDARD1_6
                        context.LogInfo(help, Color.DarkOrange);
#else
                        context.LogInfo(help);
#endif
                    }
                    else
                    {
                        context.LogInfo(help);
                    }
                }
            }

            if (ScriptArgsHelp?.Count > 0)
            {
                context.LogInfo(" ");
                context.LogInfo("Global build script arguments:");
                foreach (var argHelp in ScriptArgsHelp)
                {
                    context.LogInfo($"  {argHelp}");
                }
            }

            context.IncreaseDepth();
        }
        public bool Build(string[] targets, IEnumerable <ILogger> loggers, IEnumerable <ForwardingLoggerRecord> remoteLoggers, out IDictionary <string, TargetResult> targetOutputs)
        {
            var manager    = new BuildManager();
            var parameters = new BuildParameters(projects)
            {
                ForwardingLoggers = remoteLoggers,
                Loggers           = loggers,
            };
            var requestData = new BuildRequestData(this, targets ?? DefaultTargets.ToArray());
            var result      = manager.Build(parameters, requestData);

            targetOutputs = result.ResultsByTarget;
            return(result.OverallResult == BuildResultCode.Success);
        }
Beispiel #4
0
 public bool Build(IEnumerable <ILogger> loggers, IEnumerable <ForwardingLoggerRecord> remoteLoggers)
 {
     return(Build(DefaultTargets.ToArray(), loggers, remoteLoggers));
 }
Beispiel #5
0
 public void SetDefaultTarget(ITargetInternal target)
 {
     DefaultTargets.Add(target);
 }
Beispiel #6
0
 public static DefaultTargets SetDefaultTargets(this IBuildPropertiesSession context,
                                                DefaultTargets defaultTargets)
 {
     context.Set(BuildProps.DefaultTargets, defaultTargets);
     return(defaultTargets);
 }
 public void SetDefaultTarget(ITarget target)
 {
     DefaultTargets.Add(target);
 }