From c134042d56ee09818a20073e83a70c8aaf93802b Mon Sep 17 00:00:00 2001 From: "SND\\eagleeyestudios_cp" Date: Mon, 3 Jun 2013 20:12:07 +0000 Subject: [PATCH] Tweaked the assembly blacklisting for linux. Building stuff on linux does now work without crashing mono. --- .../ANX.Framework.Content.Pipeline_Linux.csproj | 5 +++-- .../Serialization/Compiler/ContentCompiler.cs | 6 ++++++ .../Tasks/ImporterManager.cs | 5 ++++- .../Tasks/ProcessorManager.cs | 16 +++++++++++++--- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline_Linux.csproj b/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline_Linux.csproj index da7282ec..12cf2a53 100644 --- a/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline_Linux.csproj +++ b/ANX.Framework.Content.Pipeline/ANX.Framework.Content.Pipeline_Linux.csproj @@ -11,6 +11,7 @@ ANX.Framework.Content.Pipeline ANX.Framework.Content.Pipeline 512 + 4.0 True @@ -218,11 +219,11 @@ {6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35} - ANX.Framework + ANX.Framework_Linux {1986B0ED-3D28-4FEE-82D0-BCC39C87C18C} - WaveUtils + WaveUtils_Linux diff --git a/ANX.Framework.Content.Pipeline/Serialization/Compiler/ContentCompiler.cs b/ANX.Framework.Content.Pipeline/Serialization/Compiler/ContentCompiler.cs index 51ea90f3..8c7d0c7b 100644 --- a/ANX.Framework.Content.Pipeline/Serialization/Compiler/ContentCompiler.cs +++ b/ANX.Framework.Content.Pipeline/Serialization/Compiler/ContentCompiler.cs @@ -157,6 +157,12 @@ namespace ANX.Framework.Content.Pipeline.Serialization.Compiler public void AddContentWriterAssembly(Assembly assembly) { +#if LINUX + //Apparently these Assemblies are bad juju, so lets blacklist them as we don't need to check them anyway + if (assembly.FullName == "MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" + || assembly.FullName == "Mono.TextEditor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "MonoDevelop.Ide, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null") + return; +#endif foreach (Type type in assembly.GetTypes()) { ContentTypeWriterAttribute[] value = (ContentTypeWriterAttribute[])type.GetCustomAttributes(typeof(ContentTypeWriterAttribute), true); diff --git a/ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs b/ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs index 726dbe24..302c4597 100644 --- a/ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs +++ b/ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs @@ -25,8 +25,11 @@ namespace ANX.Framework.Content.Pipeline.Tasks { #if LINUX //Apparently these Assemblies are bad juju, so lets blacklist them as we don't need to check them anyway - if (assembly.FullName == "MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f") + if (assembly.FullName == "MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" + || assembly.FullName == "Mono.TextEditor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "MonoDevelop.Ide, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null") return; + + Console.WriteLine("ImporterManager: Checking " + assembly.FullName); #endif foreach (Type type in TypeHelper.SafelyExtractTypesFrom(assembly)) { diff --git a/ANX.Framework.Content.Pipeline/Tasks/ProcessorManager.cs b/ANX.Framework.Content.Pipeline/Tasks/ProcessorManager.cs index 8c288185..9180effd 100644 --- a/ANX.Framework.Content.Pipeline/Tasks/ProcessorManager.cs +++ b/ANX.Framework.Content.Pipeline/Tasks/ProcessorManager.cs @@ -21,11 +21,16 @@ namespace ANX.Framework.Content.Pipeline.Tasks { foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { - #if LINUX + #if LINUX //Apparently these Assemblies are bad juju, so lets blacklist them as we don't need to check them anyway - if (assembly.FullName == "MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f") + if (assembly.FullName == "MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" + || assembly.FullName == "Mono.TextEditor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" || assembly.FullName == "MonoDevelop.Ide, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null") return; - #endif + + Console.WriteLine("ProcessorManager: Checking " + assembly.FullName); +#endif + try + { foreach (Type type in assembly.GetTypes()) { ContentProcessorAttribute[] value = (ContentProcessorAttribute[]) type.GetCustomAttributes(typeof(ContentProcessorAttribute), true); @@ -34,6 +39,11 @@ namespace ANX.Framework.Content.Pipeline.Tasks processors[type.Name] = (IContentProcessor)Activator.CreateInstance(type); } } + } + catch(Exception ex) + { + Console.WriteLine(assembly.FullName); + } } }