GameNetworkingSockets
GameNetworkingSockets copied to clipboard
Get cmake to support IOS/Android
What about IOS/Android support?
Yeah, good idea. What exactly would be needed? Basically just the makefiles / build instructions I think, right?
This code has shipped on iOS and Android. (Dota Underlords uses it.)
Yes just the makefiles and build instructions. Or just some information about preprocessor definitions should be present on ios/android builds.
I have a working iOS, MacOS and Android versions.
Well, it would be better to have makefiles and build instructions, but, well, i prepared custom solutions (.sln) /projects for each platform out of the very same source codes and pushed to my forked version which works quite nice. That is handy when you want a build without the makefiles with IDE support, well of course it has IDE dependency in that way, i use Visual Studio 2017, 2019 for Android and Xcode for iOS and MacOS.
I forked months ago, but it is not that far from current version.
I may share if you wish, you may want to check the preprocessor definitions from projects. They all working for Android(x86, x64, armv7, arm64), iOS and MacOS. Just fyi.
Check for release configurations:
https://github.com/ingamegroup/GameNetworkingSockets/tree/master/build
Is there a standard way to get cmake to target android / iOS? I'd like to use that if possible.
At Valve, we have two different sets of code that is using two different build environments: In one branch, we use VPC, our own cmake-like tool. And the other, we have hand-coded makefiles. Neither of these is really suitable for an opensource project, I think. I'd like to get cmake to work.
I could document the needed defines and link libs that @Levendo probably figured out. I don't like the idea of checking in .vcprojx files directly, for the same reason that we don't do this for windows - just too many different configurations to maintain. Isn't this the whole purpose of cmake? :)
Is there a standard way to get cmake to target android / iOS?
Yes, see Cross Compiling for Android and Cross Compiling for iOS, tvOS, or watchOS.
Cool, that sounds perfect! I don't have time to research this and hook this up and test it. But if somebody made a pull request, I'd take it!
As @Levendo discovered, the code definitely compiles on Android and iOS and it's been shipped in Underlords on those platforms. So just figuring out the cmake part should be the only thing that needs to be done, and it's probably not going to rise on my priority list high enough for a while.
I'll update the title and add a tag, maybe some kind soul will grab it!
Well, i'd love to do the research and do the stuff. It is quite busy these days :/. I'll keep it in mind.
We maintain a Fork where we made the changes for it to compile for both Android and iOS, so if anyone wants to use it as a base for a PR, here it goes
https://github.com/tfgco/GameNetworkingSockets/commits/master
Building instructions for both platforms are described in BUILDING.md, don't expect anything fancy :p
See commits starting Mar-15
Looks good, just a few minor changes. 👍
Looks neat, good job.
Third parties(OpenSSL and Protobuf) provided as pre-builts i guess. Just wondering do we need the build instructions for them as well as part of the building process?
Will it be as simple as rebasing the commits on last valve master and reading building instructions ? I see that fork is ~250 commits behind.