vizor-games / InfraworldRuntime

A solution that enables Unreal Engine 4 to work with Google gRPC services from either C++ or Blueprints.
Apache License 2.0
169 stars 56 forks source link

Compile for Android #23

Open jmc-elodie opened 3 years ago

jmc-elodie commented 3 years ago

Hey guys,

EDIT: more clearly articulate the problems I am seeing I am trying to compile for Android and am having linking problems that seem to stem from not having a good OpenSSL dependency available in Unreal on Android. It looks like the Http library that unreal uses on Android specifically statically links in its own version of OpenSSL to get around this. The problem is that these symbols pollute the namespace so if I try to do the same thing with gRPC I get duplicate symbol errors.

I tried linking directly against libcurl in my unreal build thus letting my use the statically linked OpenSSL dependency there but the problem I encountered was that they use an older version of OpenSSL than grpc supports (1.0.1s vs 1.1.1).

I ask this here because I feel like this is a problem that users of InfraworldRuntime may have uniquely encountered

jmc-elodie commented 3 years ago

Ok I was able to figure this out, I am going to do a write-up but here is the TLDR:

I have some sketchy batch scripts to do this currently, but I think it might be worth making a cmake project that does all this? Would that be something you think should be a part of InfraworldRuntime?

jmc-elodie commented 3 years ago

Actually Epic seems like they did basically exactly this in 4.27 https://github.com/EpicGames/UnrealEngine/commit/c0a96cfc11bbb4067c823b3225ef2bd1b50d05e0

MosheBitan78 commented 2 years ago

@jmc-elodie Can you make this code accessible? We are facing the same issue and your solution will greatly help us. Can we please communicate via email?