Congratulations on the release, really great to see GNUstep used in the wild 
like this!

As we’ve also been working on an GNUstep Android toolchain 
<https://github.com/gnustep/tools-android> (announcement forthcoming by Greg 
Casamento), I’d love to see if we can somehow combine our efforts towards 
making GNUstep work great on Android.

Our solution to managing the build process has been a collection of concise 
scripts <https://github.com/gnustep/tools-android/tree/master/phases>, one for 
each library, to pre-build the toolchain into a common shared location (for all 
ABIs). An Android project can then integrate the toolchain by calling 
gnustep-config in that location to get the necessary compiler/linker flags 
(e.g. from CMake as shown 
<https://github.com/gnustep/android-examples/blob/master/hello-objectivec/app/src/main/cpp/CMakeLists.txt#L12-L42>
 in our Android Studio example project).

Other than that our setup seems very similar (e.g. using libdispatch and ARC), 
but it’d be great to hear where it differs from yours. We also have an 
integration with Qt internally (including integrating libdispatch with the Qt 
run loop) which I hope to share as another example.

While we’re still a long way from shipping something with this setup we’re 
pretty happy with our early prototypes using it.

As a side node, as of today the toolchain also works on arm64 and x86/x86_64 
(great for using the emulator) using the gnustep-1.9 runtime (we tried using 
the 2.0 runtime but ran into an issue 
<https://github.com/gnustep/libobjc2/issues/90> with the clang version that is 
part of the NDK, but hopefully we can make the switch with a future NDK 
release).

Frederik


> Am 04.05.2019 um 05:49 schrieb Jordan Schidlowsky 
> <[email protected]>:
> 
> Hey all, just wanted to share with everyone on the list we FINALLY launched 
> our Android game built on GNUstep, Golf Blitz.   It of course has an iOS 
> counterpart but the Android build is built on top of GNUstep.   If you have 
> an android device you can find it easily in the Google Play store by 
> searching for "Golf Blitz", it's free.  It's a quite strange multiplayer golf 
> game...
> 
> Some highlights:
> 
> Runtime: gnustep-runtime-1.9
> Arch: armv7a softfp
> Graphics: GLESv2, cocos2d
> Uses blocks, arc, and libdispatch heavily.  Libdispatch isn't built into any 
> runloop and we kinda bootstrap the apps main thread onto a java render 
> thread...  We also just drain the main dispatch queue manually and the start 
> of our game loop.  
> Libs-base version:   9bcef37ae0bdf2ce5a1baacac2a3288cb39e2f03
> Cloud game servers:  Google cloud
> 
> Next up on my todo list is the get the game running on the 2.1 runtime 
> (thanks David for all your work!), as Google has a requirement that all new 
> game updates have to be built as arm64 binaries by August.   I definitely 
> will be able to provide a decent amount of testing for that runtime and arch.
> 
> Cheers,
> -Jordan
> _______________________________________________
> Discuss-gnustep mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep

_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to