using System;
using System.Collections;
+using System.Collections.Generic;
using System.IO;
using Microsoft.Build.Framework;
using Mono.XBuild.Utilities;
EventSource eventSource;
bool buildStarted;
BuildPropertyGroup globalProperties;
- IDictionary importedProjects;
- IList loggers;
- bool onlyLogCriticalEvents;
- IDictionary projects;
+ //IDictionary importedProjects;
+ List <ILogger> loggers;
+ //bool onlyLogCriticalEvents;
+ Dictionary <string, Project> projects;
static Engine globalEngine;
static Version version;
{
this.binPath = binPath;
this.buildEnabled = true;
- this.projects = new Hashtable ();
+ this.projects = new Dictionary <string, Project> ();
this.eventSource = new EventSource ();
- this.loggers = new ArrayList ();
+ this.loggers = new List <ILogger> ();
this.buildStarted = false;
this.globalProperties = new BuildPropertyGroup ();
bool result;
Project project;
- if (projects.Contains (projectFile)) {
+ if (projects.ContainsKey (projectFile)) {
project = (Project) projects [projectFile];
LogProjectStarted (project, targetNames);
result = project.Build (targetNames, targetOutputs);
+ } else {
+ project = CreateNewProject ();
+ project.Load (projectFile);
+ LogProjectStarted (project, targetNames);
+ result = project.Build (targetNames, targetOutputs);
}
- else
- return false;
LogProjectFinished (project, result);
public Project CreateNewProject ()
{
- if (defaultTasksRegistered == true)
+ if (defaultTasksRegistered)
CheckBinPath ();
// FIXME: I don't really know if it should be here
LogBuildStarted ();
if (projectFullFileName == null)
throw new ArgumentNullException ("projectFullFileName");
- return (Project) projects [projectFullFileName];
+ return projects [projectFullFileName];
}
internal void RemoveLoadedProject (Project p)
public void UnloadAllProjects ()
{
- foreach (DictionaryEntry e in projects)
- UnloadProject ((Project) e.Value);
+ foreach (KeyValuePair <string, Project> e in projects)
+ UnloadProject (e.Value);
}
[MonoTODO]
Project defaultTasksProject = CreateNewProject ();
if (binPath != null) {
- if (File.Exists (Path.Combine (binPath, defaultTasksProjectName)) == true) {
+ if (File.Exists (Path.Combine (binPath, defaultTasksProjectName))) {
defaultTasksProject.Load (Path.Combine (binPath, defaultTasksProjectName));
defaultTasks = defaultTasksProject.TaskDatabase;
} else {