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:
authorMatt Ward <ward.matt@gmail.com>2018-04-13 16:39:32 +0300
committerGitHub <noreply@github.com>2018-04-13 16:39:32 +0300
commite72dcdcd3b682df59f578e714634a81f7c90af25 (patch)
treeada359550d249454252da68406a2c7bd954b60b2 /main/src/core
parentc6a5590bb2b09821d305ae4826997f5d7ef2d016 (diff)
parentc473932ff8970765cf3f548e1afe6925a4c5a880 (diff)
Merge pull request #4541 from mono/xamarin-mac-resolve-facades-directory
[Core] Support facade assemblies from a custom location
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs35
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectExtension.cs5
2 files changed, 32 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
index 07b2ca1735..8186af470c 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
@@ -972,19 +972,33 @@ namespace MonoDevelop.Projects
}
if (addFacadeAssemblies) {
- var runtime = TargetRuntime ?? MonoDevelop.Core.Runtime.SystemAssemblyService.DefaultRuntime;
- var facades = runtime.FindFacadeAssembliesForPCL (TargetFramework);
- foreach (var facade in facades) {
- if (!File.Exists (facade))
- continue;
- var ar = new AssemblyReference (facade);
- if (!result.Contains (ar))
- result.Add (ar);
+ var facades = await ProjectExtension.OnGetFacadeAssemblies ();
+ if (facades != null) {
+ foreach (var facade in facades) {
+ if (!result.Contains (facade))
+ result.Add (facade);
+ }
}
}
return result;
}
+ internal protected virtual Task<List<AssemblyReference>> OnGetFacadeAssemblies ()
+ {
+ List<AssemblyReference> result = null;
+ var runtime = TargetRuntime ?? Runtime.SystemAssemblyService.DefaultRuntime;
+ var facades = runtime.FindFacadeAssembliesForPCL (TargetFramework);
+ foreach (var facade in facades) {
+ if (!File.Exists (facade))
+ continue;
+ if (result == null)
+ result = new List<AssemblyReference> ();
+ var ar = new AssemblyReference (facade);
+ result.Add (ar);
+ }
+ return Task.FromResult (result);
+ }
+
AsyncCriticalSection referenceCacheLock = new AsyncCriticalSection ();
ImmutableDictionary<string, List<AssemblyReference>> referenceCache = ImmutableDictionary<string, List<AssemblyReference>>.Empty;
bool referenceCacheNeedsRefresh;
@@ -2030,6 +2044,11 @@ namespace MonoDevelop.Projects
return Project.OnGetReferencedAssemblyProjects (configuration);
}
+ internal protected override Task<List<AssemblyReference>> OnGetFacadeAssemblies ()
+ {
+ return Project.OnGetFacadeAssemblies ();
+ }
+
#pragma warning disable 672 // Member overrides obsolete member
internal protected override ExecutionCommand OnCreateExecutionCommand (ConfigurationSelector configSel, DotNetProjectConfiguration configuration)
{
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectExtension.cs
index 3737d95c64..62106c0508 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectExtension.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProjectExtension.cs
@@ -88,6 +88,11 @@ namespace MonoDevelop.Projects
return next.OnGetReferencedAssemblyProjects (configuration);
}
+ internal protected virtual Task<List<AssemblyReference>> OnGetFacadeAssemblies ()
+ {
+ return next.OnGetFacadeAssemblies ();
+ }
+
[Obsolete("User overload that takes a RunConfiguration")]
internal protected virtual ExecutionCommand OnCreateExecutionCommand (ConfigurationSelector configSel, DotNetProjectConfiguration configuration)
{