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); }
public bool Build(IEnumerable <ILogger> loggers, IEnumerable <ForwardingLoggerRecord> remoteLoggers) { return(Build(DefaultTargets.ToArray(), loggers, remoteLoggers)); }
public void SetDefaultTarget(ITargetInternal target) { DefaultTargets.Add(target); }
public static DefaultTargets SetDefaultTargets(this IBuildPropertiesSession context, DefaultTargets defaultTargets) { context.Set(BuildProps.DefaultTargets, defaultTargets); return(defaultTargets); }
public void SetDefaultTarget(ITarget target) { DefaultTargets.Add(target); }