From 86f2eca4750831b9f9be52b69fc99f55d8c38326 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Mon, 6 Feb 2017 20:36:49 +0000 Subject: [PATCH] Rewrite the way we do embedded resource loading to work with VS for Mac. --- .../Passes/GetterSetterToPropertyPass.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Generator/Passes/GetterSetterToPropertyPass.cs b/src/Generator/Passes/GetterSetterToPropertyPass.cs index 5b0a7d6d..8d354a1e 100644 --- a/src/Generator/Passes/GetterSetterToPropertyPass.cs +++ b/src/Generator/Passes/GetterSetterToPropertyPass.cs @@ -304,12 +304,9 @@ namespace CppSharp.Passes private static void LoadVerbs() { - var assembly = Assembly.GetExecutingAssembly(); + var assembly = Assembly.GetAssembly(typeof(GetterSetterToPropertyPass)); using (var resourceStream = GetResourceStream(assembly)) { - if (resourceStream == null) - throw new Exception("Cannot find embedded verbs data resource."); - using (var streamReader = new StreamReader(resourceStream)) while (!streamReader.EndOfStream) verbs.Add(streamReader.ReadLine()); @@ -318,11 +315,16 @@ namespace CppSharp.Passes private static Stream GetResourceStream(Assembly assembly) { - var stream = assembly.GetManifestResourceStream("CppSharp.Generator.Passes.verbs.txt"); - // HACK: a bug in premake for OS X causes resources to be embedded with an incorrect location - return stream ?? assembly.GetManifestResourceStream("verbs.txt"); - } + var resources = assembly.GetManifestResourceNames(); + if (resources.Count() == 0) + throw new Exception("Cannot find embedded verbs data resource."); + + // We are relying on this fact that there is only one resource embedded. + // Before we loaded the resource by name but found out that naming was + // different between different platforms and/or build systems. + return assembly.GetManifestResourceStream(resources[0]); + } public GetterSetterToPropertyPass() {