Browse Source

Rewrite the way we do embedded resource loading to work with VS for Mac.

pull/756/head
Joao Matos 9 years ago
parent
commit
86f2eca475
  1. 18
      src/Generator/Passes/GetterSetterToPropertyPass.cs

18
src/Generator/Passes/GetterSetterToPropertyPass.cs

@ -304,12 +304,9 @@ namespace CppSharp.Passes
private static void LoadVerbs() private static void LoadVerbs()
{ {
var assembly = Assembly.GetExecutingAssembly(); var assembly = Assembly.GetAssembly(typeof(GetterSetterToPropertyPass));
using (var resourceStream = GetResourceStream(assembly)) using (var resourceStream = GetResourceStream(assembly))
{ {
if (resourceStream == null)
throw new Exception("Cannot find embedded verbs data resource.");
using (var streamReader = new StreamReader(resourceStream)) using (var streamReader = new StreamReader(resourceStream))
while (!streamReader.EndOfStream) while (!streamReader.EndOfStream)
verbs.Add(streamReader.ReadLine()); verbs.Add(streamReader.ReadLine());
@ -318,11 +315,16 @@ namespace CppSharp.Passes
private static Stream GetResourceStream(Assembly assembly) private static Stream GetResourceStream(Assembly assembly)
{ {
var stream = assembly.GetManifestResourceStream("CppSharp.Generator.Passes.verbs.txt"); var resources = assembly.GetManifestResourceNames();
// HACK: a bug in premake for OS X causes resources to be embedded with an incorrect location
return stream ?? assembly.GetManifestResourceStream("verbs.txt");
}
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() public GetterSetterToPropertyPass()
{ {

Loading…
Cancel
Save