Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2014-06-07 04:03:58 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2014-06-17 00:39:07 +0400
commit0eb6d05b6f39ce43f082894cf82f20faa908884c (patch)
treec1ed5e5d25909636011af7eaca0667df7e9a5816 /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
parent066fe3fd20c2d272e7c21b9f63e4104dccb683e5 (diff)
[MSBuild] Remote builder support for arbitrary target/item evaluation
Not exposed yet, but used for reference evaluation.
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs27
1 files changed, 18 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
index fa5c98f4c5..99d40b96ef 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
@@ -259,8 +259,17 @@ namespace MonoDevelop.Projects.Formats.MSBuild
SolutionEntityItem item = (SolutionEntityItem) Item;
RemoteProjectBuilder builder = GetProjectBuilder ();
var configs = GetConfigurations (item, configuration);
- foreach (string s in builder.GetAssemblyReferences (configs))
- yield return s;
+
+ var result = builder.Run (
+ configs, null, MSBuildVerbosity.Normal,
+ new[] { "ResolveAssemblyReferences" }, new [] { "ReferencePath" }, null
+ );
+
+ List<MSBuildEvaluatedItem> items;
+ if (result.Items.TryGetValue ("ReferencePath", out items) && items != null) {
+ foreach (var i in items)
+ yield return i.ItemSpec;
+ }
}
else {
CleanupProjectBuilder ();
@@ -282,19 +291,19 @@ namespace MonoDevelop.Projects.Formats.MSBuild
LogWriter logWriter = new LogWriter (monitor.Log);
RemoteProjectBuilder builder = GetProjectBuilder ();
var configs = GetConfigurations (item, configuration);
- MSBuildResult[] results = builder.RunTarget (target, configs, logWriter, MSBuildProjectService.DefaultMSBuildVerbosity);
+ var result = builder.Run (configs, logWriter, MSBuildProjectService.DefaultMSBuildVerbosity, new[] { target }, null, null);
System.Runtime.Remoting.RemotingServices.Disconnect (logWriter);
var br = new BuildResult ();
- foreach (MSBuildResult res in results) {
+ foreach (var err in result.Errors) {
FilePath file = null;
- if (res.File != null)
- file = Path.Combine (Path.GetDirectoryName (res.ProjectFile), res.File);
+ if (err.File != null)
+ file = Path.Combine (Path.GetDirectoryName (err.ProjectFile), err.File);
- if (res.IsWarning)
- br.AddWarning (file, res.LineNumber, res.ColumnNumber, res.Code, res.Message);
+ if (err.IsWarning)
+ br.AddWarning (file, err.LineNumber, err.ColumnNumber, err.Code, err.Message);
else
- br.AddError (file, res.LineNumber, res.ColumnNumber, res.Code, res.Message);
+ br.AddError (file, err.LineNumber, err.ColumnNumber, err.Code, err.Message);
}
return br;
}