You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
// <file> |
|
// <copyright see="prj:///doc/copyright.txt"/> |
|
// <license see="prj:///doc/license.txt"/> |
|
// <author name="Daniel Grunwald"/> |
|
// <version>$Revision$</version> |
|
// </file> |
|
|
|
using System; |
|
using Microsoft.Build.BuildEngine; |
|
using Microsoft.Build.Framework; |
|
|
|
namespace ICSharpCode.SharpDevelop.BuildWorker |
|
{ |
|
sealed class MSBuildWrapper |
|
{ |
|
public void Cancel() |
|
{ |
|
} |
|
|
|
readonly Engine engine; |
|
|
|
public MSBuildWrapper() |
|
{ |
|
engine = new Engine(ToolsetDefinitionLocations.Registry | ToolsetDefinitionLocations.ConfigurationFile); |
|
} |
|
|
|
public bool DoBuild(BuildJob job, ILogger logger) |
|
{ |
|
engine.RegisterLogger(logger); |
|
|
|
Program.Log("Building target '" + job.Target + "' in " + job.ProjectFileName); |
|
string[] targets = job.Target.Split(';'); |
|
|
|
BuildPropertyGroup globalProperties = new BuildPropertyGroup(); |
|
foreach (var pair in job.Properties) { |
|
globalProperties.SetProperty(pair.Key, pair.Value, true); |
|
} |
|
|
|
try { |
|
return engine.BuildProjectFile(job.ProjectFileName, targets, globalProperties); |
|
} finally { |
|
engine.UnregisterAllLoggers(); |
|
} |
|
} |
|
} |
|
}
|
|
|