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:
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs44
1 files changed, 28 insertions, 16 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs
index c370403ffa..605464cee2 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MD1/MD1DotNetProjectHandler.cs
@@ -35,6 +35,7 @@ using MonoDevelop.Core;
using MonoDevelop.Core.Execution;
using MonoDevelop.Projects.Extensions;
using Microsoft.Build.BuildEngine;
+using System.Threading.Tasks;
namespace MonoDevelop.Projects.Formats.MD1
{
@@ -48,9 +49,9 @@ namespace MonoDevelop.Projects.Formats.MD1
get { return (DotNetProject) Item; }
}
- protected override BuildResult OnBuild (IProgressMonitor monitor, ConfigurationSelector configuration)
+ protected async override Task<BuildResult> OnBuild (ProgressMonitor monitor, ConfigurationSelector configuration)
{
- if (!Project.InternalCheckNeedsBuild (configuration)) {
+ if (!Project.OnGetNeedsBuilding (configuration)) {
monitor.Log.WriteLine (GettextCatalog.GetString ("Skipping project since output files are up to date"));
return new BuildResult ();
}
@@ -150,25 +151,36 @@ namespace MonoDevelop.Projects.Formats.MD1
buildData.Configuration.SetParentItem (project);
buildData.ConfigurationSelector = configuration;
- return ProjectExtensionUtil.Compile (monitor, project, buildData, delegate {
+ return await Task<BuildResult>.Factory.StartNew (delegate {
ProjectItemCollection items = buildData.Items;
- BuildResult res = BuildResources (buildData.Configuration, ref items, monitor);
- if (res != null)
- return res;
-
- res = project.LanguageBinding.Compile (items, buildData.Configuration, buildData.ConfigurationSelector, monitor);
+ BuildResult br = BuildResources (buildData.Configuration, ref items, monitor);
+ if (br != null)
+ return br;
+
+ br = project.LanguageBinding.Compile (items, buildData.Configuration, buildData.ConfigurationSelector, monitor);
if (refres != null) {
- refres.Append (res);
+ refres.Append (br);
return refres;
- }
- else
- return res;
+ } else
+ return br;
+ });
+
+ }
+
+ internal static Task<BuildResult> Compile (ProgressMonitor monitor, DotNetProject project, BuildData buildData)
+ {
+ return Task<BuildResult>.Factory.StartNew (delegate {
+ ProjectItemCollection items = buildData.Items;
+ BuildResult br = BuildResources (buildData.Configuration, ref items, monitor);
+ if (br != null)
+ return br;
+ return project.LanguageBinding.Compile (items, buildData.Configuration, buildData.ConfigurationSelector, monitor);
});
- }
+ }
// Builds the EmbedAsResource files. If any localized resources are found then builds the satellite assemblies
// and sets @projectItems to a cloned collection minus such resource files.
- private BuildResult BuildResources (DotNetProjectConfiguration configuration, ref ProjectItemCollection projectItems, IProgressMonitor monitor)
+ internal static BuildResult BuildResources (DotNetProjectConfiguration configuration, ref ProjectItemCollection projectItems, ProgressMonitor monitor)
{
string resgen = configuration.TargetRuntime.GetToolPath (configuration.TargetFramework, "resgen");
ExecutionEnvironment env = configuration.TargetRuntime.GetToolsExecutionEnvironment (configuration.TargetFramework);
@@ -220,7 +232,7 @@ namespace MonoDevelop.Projects.Formats.MD1
return null;
}
- CompilerError GetResourceId (FilePath outputFile, ExecutionEnvironment env, ProjectFile finfo, ref string fname, string resgen, out string resourceId, IProgressMonitor monitor)
+ static CompilerError GetResourceId (FilePath outputFile, ExecutionEnvironment env, ProjectFile finfo, ref string fname, string resgen, out string resourceId, ProgressMonitor monitor)
{
resourceId = finfo.ResourceId;
if (resourceId == null) {
@@ -326,7 +338,7 @@ namespace MonoDevelop.Projects.Formats.MD1
return finfo_first.LastWriteTime > finfo_second.LastWriteTime;
}
- CompilerError GenerateSatelliteAssemblies (Dictionary<string, string> resourcesByCulture, string outputDir, string al, string defaultns, IProgressMonitor monitor)
+ static CompilerError GenerateSatelliteAssemblies (Dictionary<string, string> resourcesByCulture, string outputDir, string al, string defaultns, ProgressMonitor monitor)
{
foreach (KeyValuePair<string, string> pair in resourcesByCulture) {
string culture = pair.Key;