We will be shipping a large game in a couple weeks on android that is built on 
gnustep.   We've been testing very extensively over the past 3-4 months and 
things look quite stable (at least on armv7-a).  The game heavily uses ARC, 
blocks, libdispatch....  Lemme just say the configuration of gnustep-base, 
build, and project setup, were........ not ideal.

> On Feb 15, 2019, at 11:04 AM, Gregory Casamento <greg.casame...@gmail.com> 
> wrote:
> 
> The challenge at this point is to get a working app.  
> 
> On Wed, Feb 13, 2019 at 14:47 Gregory Casamento <greg.casame...@gmail.com 
> <mailto:greg.casame...@gmail.com>> wrote:
> 
> Ivan pointed out that I was using the wrong ninja script.  This solved my 
> problem.   I am now working on getting base to build properly.
> 
> GC
> 
> On Wed, Feb 13, 2019 at 12:21 PM Ivan Vučica <i...@vucica.net 
> <mailto:i...@vucica.net>> wrote:
> FTR thank you for that, and for spotting -androideabi16!
> 
> On Wed, Feb 13, 2019 at 5:20 PM Jordan Schidlowsky <jor...@noodlecake.com 
> <mailto:jor...@noodlecake.com>> wrote:
> Agreed, just sharing whats working for us via gradle config.
> 
>> On Feb 13, 2019, at 11:17 AM, Ivan Vučica <i...@vucica.net 
>> <mailto:i...@vucica.net>> wrote:
>> 
>> Aye; but we should not depend on using Gradle as the end state.
>> 
>> On Wed, Feb 13, 2019 at 5:09 PM Jordan Schidlowsky <jor...@noodlecake.com 
>> <mailto:jor...@noodlecake.com>> wrote:
>> Ya you're right,  It should be picked up.  For what it's worth, here's our 
>> gradle config, (which ends up passing the correct flags to cmake for 
>> building gnustep):
>> defaultConfig {
>>     applicationId "com.noodlecake.ssg4"
>>     minSdkVersion 21
>>     targetSdkVersion 28
>>     versionCode 28
>>     versionName "1.0.0"
>>     testInstrumentationRunner 
>> "android.support.test.runner.AndroidJUnitRunner"
>>     externalNativeBuild {
>>         cmake {
>>             cppFlags "-std=c++14 -frtti -fexceptions 
>> -fconstant-string-class=NSConstantString"
>>             cFlags "-DANDROID -fconstant-string-class=NSConstantString"
>>             arguments "-DCMAKE_VERBOSE_MAKEFILE=ON",
>>                     "-DANDROID_STL=c++_static",
>>                     "-DANDROID_DISABLE_FORMAT_STRING_CHECKS=TRUE"
>>         }
>>     }
>>     ndk {
>>         // Specifies the ABI configurations of your native
>>         // libraries Gradle should build and package with your APK.
>>         //abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a',
>>         //        'arm64-v8a'
>>         abiFilters 'armeabi-v7a'
>>     }
>> }
>> 
>> 
>> 
>>> On Feb 13, 2019, at 11:03 AM, Ivan Vučica <i...@vucica.net 
>>> <mailto:i...@vucica.net>> wrote:
>>> 
>>> Reading through the toolchain file 
>>> <https://mailtrack.io/trace/link/faab2ea5ccbf2b25df57825eb4e8d933befc94aa?url=https%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fndk%2F%2B%2Fmaster%2Fbuild%2Fcmake%2Fandroid.toolchain.cmake&userId=2790543&signature=ae1079c361f3f494>,
>>>  ANDROID_PLATFORM will be calculated from ANDROID_NATIVE_API_LEVEL. So that 
>>> should not be the issue.
>>> 
>>> I'd start by pepper-spraying message() calls in toolchain .cmake file, and 
>>> in other .cmake files as necessary, too.
>>> 
>>> On Wed, Feb 13, 2019 at 5:01 PM Jordan Schidlowsky <jor...@noodlecake.com 
>>> <mailto:jor...@noodlecake.com>> wrote:
>>> Ah, i didn't see that shell script...  I think 
>>> -DANDROID_PLATFORM=android-21 (or 23) is what you want there.
>>> 
>>> 
>>>> On Feb 13, 2019, at 10:53 AM, Ivan Vučica <i...@vucica.net 
>>>> <mailto:i...@vucica.net>> wrote:
>>>> 
>>>> Actually -- it doesn't explain why this is happening, as the shell script 
>>>> (which I failed to notice Gregory attached) matches what I sent him. It's 
>>>> using -DANDROID_NATIVE_API_LEVEL=23 which should make it use 
>>>> ...-androideabi23.
>>>> 
>>>> Strange.
>>>> 
>>>> On Wed, Feb 13, 2019 at 4:47 PM Ivan Vučica <i...@vucica.net 
>>>> <mailto:i...@vucica.net>> wrote:
>>>> Ah, that doesn't match what I sent out and makes me feel better ;-)
>>>> 
>>>> On Wed, Feb 13, 2019 at 4:41 PM Jordan Schidlowsky <jor...@noodlecake.com 
>>>> <mailto:jor...@noodlecake.com>> wrote:
>>>> I think this line in his output indicates he's building for API 16:
>>>> 
>>>>  --target=armv7-none-linux-androideabi16 
>>>> 
>>>>> On Feb 13, 2019, at 10:07 AM, Ivan Vučica <i...@vucica.net 
>>>>> <mailto:i...@vucica.net>> wrote:
>>>>> 
>>>>> Since Greg mentioned me: 
>>>>> 
>>>>> Instructions/commands I came up with and that I sent over to Gregory 
>>>>> should attempt using API level 23. Totally arbitrarily picked. Use of 
>>>>> pre-21 API is not happening so not an issue.
>>>>> 
>>>>> Needless to say, building works for me. I don’t have a self-contained 
>>>>> script to share, but it’s super simplistic and what Greg described (incl 
>>>>> using GUI to install NDK) is what I did.
>>>>> 
>>>>> I’m only sure it builds, not that it works, as I am yet to try running 
>>>>> the code; I don’t have a build script ready for producing an APK (the old 
>>>>> approach from 2013 and 2014 is a mess and needs to be reworked).
>>>>> 
>>>>> On Wed 13 Feb 2019 at 15:34 Jordan Schidlowsky <jor...@noodlecake.com 
>>>>> <mailto:jor...@noodlecake.com>> wrote:
>>>>> I've got some patches but they are pretty ugly and I want to clean them 
>>>>> up properly before submitting...
>>>>> 
>>>>> 
>>>>>> On Feb 13, 2019, at 8:41 AM, Jordan Schidlowsky <jor...@noodlecake.com 
>>>>>> <mailto:jor...@noodlecake.com>> wrote:
>>>>>> 
>>>>>> An NDK app can chose to bundle in a (c++_shared) library in your app, or 
>>>>>> you can link with a static (c++_static) standard library.   This is 
>>>>>> actually dependant on what setting you chose for this in your gradle 
>>>>>> build file, as gradle will pass that along to cmake which will link it 
>>>>>> in.  
>>>>>> 
>>>>>> That cxx runtime test doesn't quite work correctly using an android 
>>>>>> toolchain.  But if you want to configure your ndk app using c++_static 
>>>>>> you can remove that test section from CMakeLists.txt and add in manually 
>>>>>> below:
>>>>>> 
>>>>>> set(CXXRT_IS_STDLIB true)
>>>>>> target_link_libraries(objc c++_static stdc++)
>>>>>> 
>>>>>> I will also note, that I am still thinking about a way to run that test 
>>>>>> suite while cross compiling...     
>>>>>> 
>>>>>> 
>>>>>>> On Feb 13, 2019, at 6:41 AM, Gregory Casamento 
>>>>>>> <greg.casame...@gmail.com <mailto:greg.casame...@gmail.com>> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> A little more context...  my build environment is a MacPro 2010 running 
>>>>>>> the latest version of Mojave.  I have downloaded and installed the 
>>>>>>> latest of Android studio and installed the latest SDK and NDK using the 
>>>>>>> menu under tools and the SDK manager.  The version of the NDK I'm using 
>>>>>>> is 19.0.5232133.   I am utterly stumped as to why this is not working.  
>>>>>>> Also, it seems as though Ivan's installation of this is working which 
>>>>>>> seems to indicate that this is a configuration issue.
>>>>>>> 
>>>>>>> Any input would be appreciated.
>>>>>>> 
>>>>>>> On Wed, Feb 13, 2019 at 7:09 AM Gregory Casamento 
>>>>>>> <greg.casame...@gmail.com <mailto:greg.casame...@gmail.com>> wrote:
>>>>>>> 
>>>>>>> ### Build libobjc2
>>>>>>> -- The ASM compiler identification is Clang
>>>>>>> -- Found assembler: 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
>>>>>>> -- Check for working C compiler: 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
>>>>>>> -- Check for working C compiler: 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
>>>>>>>  -- works
>>>>>>> -- Detecting C compiler ABI info
>>>>>>> -- Detecting C compiler ABI info - done
>>>>>>> -- Detecting C compile features
>>>>>>> -- Detecting C compile features - done
>>>>>>> -- Check for working CXX compiler: 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
>>>>>>> -- Check for working CXX compiler: 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
>>>>>>>  -- works
>>>>>>> -- Detecting CXX compiler ABI info
>>>>>>> -- Detecting CXX compiler ABI info - done
>>>>>>> -- Detecting CXX compile features
>>>>>>> -- Detecting CXX compile features - done
>>>>>>> -- Testing C++ interop
>>>>>>> -- Testing C++ standard library
>>>>>>> -- No useable C++ runtime found
>>>>>>> -- Looking for pthread.h
>>>>>>> -- Looking for pthread.h - found
>>>>>>> -- Looking for pthread_create
>>>>>>> -- Looking for pthread_create - found
>>>>>>> -- Found Threads: TRUE  
>>>>>>> -- GNUstep install type set to NONE
>>>>>>> -- Performing Test CXA_ALLOCATE_EXCEPTION_NOEXCEPT_COMPILES
>>>>>>> -- Performing Test CXA_ALLOCATE_EXCEPTION_NOEXCEPT_COMPILES - Success
>>>>>>> -- Configuring done
>>>>>>> -- Generating done
>>>>>>> -- Build files have been written to: 
>>>>>>> /Users/heron/Development/Algoriddim/gnustep-toolchain/gnustep-android/gnustep/libobjc2/build
>>>>>>> /Users/heron/Development/Algoriddim/gnustep-toolchain/gnustep-android/gnustep/libobjc2/build/CMake
>>>>>>> [1/1] Linking CXX executable test_cxx_runtime
>>>>>>> FAILED: test_cxx_runtime 
>>>>>>> : && 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
>>>>>>>  --target=armv7-none-linux-androideabi16 
>>>>>>> --gcc-toolchain=/Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64
>>>>>>>   --sysroot 
>>>>>>> /Users/heron/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot
>>>>>>>  -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables 
>>>>>>> -fstack-protector-strong -no-canonical-prefixes -mfpu=vfpv3-d16 
>>>>>>> -fno-addrsig -mthumb -Wa,--noexecstack -Wformat -Werror=format-security 
>>>>>>> -stdlib=libc++  -Wl,--exclude-libs,libgcc.a 
>>>>>>> -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id 
>>>>>>> -Wl,--warn-shared-textrel  -Wl,--exclude-libs,libunwind.a 
>>>>>>> -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -Wl,-z,relro 
>>>>>>> -Wl,-z,now -Wl,--gc-sections 
>>>>>>> CMakeFiles/test_cxx_runtime.dir/typeinfo_test.cc.o  -o test_cxx_runtime 
>>>>>>>  -latomic -lm && :
>>>>>>> CMakeFiles/test_cxx_runtime.dir/typeinfo_test.cc.o:typeinfo_test.cc 
>>>>>>> <https://mailtrack.io/trace/link/60886d21dd395f248f150bf2063af90bce602b5b?url=http%3A%2F%2Ftypeinfo_test.cc%2F&userId=2790543&signature=a72ed8c78f119f8b>:vtable
>>>>>>>  for type_info2: error: undefined reference to 
>>>>>>> 'std::type_info::__do_upcast(__cxxabiv1::__class_type_info const*, 
>>>>>>> void**) const'
>>>>>>> clang++: error: linker command failed with exit code 1 (use -v to see 
>>>>>>> invocation)
>>>>>>> ninja: build stopped: subcommand failed.
>>>>>>> ### LIBOBJC2 BUILD FAILED!!!
>>>>>>> 
>>>>>>> I am running into the above error when trying to build for Android.  I 
>>>>>>> have the latest ndk and sdk installed with Android studio.  Does anyone 
>>>>>>> have any idea offhand why C++ isn't finding it's runtime?   I will 
>>>>>>> attach the build script I am using to generate the ninja script....
>>>>>>> 
>>>>>>> GC
>>>>>>> 
>>>>>>> -- 
>>>>>>> Gregory Casamento
>>>>>>> GNUstep Lead Developer / OLC, Principal Consultant
>>>>>>> http://www.gnustep.org 
>>>>>>> <https://mailtrack.io/trace/link/5539c79bf8ea11ab855df69cf27c47504df4029a?url=http%3A%2F%2Fwww.gnustep.org&userId=2790543&signature=a3bacb38978af1d3>
>>>>>>>  - http://heronsperch.blogspot.com 
>>>>>>> <https://mailtrack.io/trace/link/0e7d2849e32e6a5545dee4db716d416d8a769d54?url=http%3A%2F%2Fheronsperch.blogspot.com&userId=2790543&signature=794ec8837a56aa7c>
>>>>>>> http://ind.ie/phoenix/ 
>>>>>>> <https://mailtrack.io/trace/link/2957e53708e301d78eebf58dc506d80bbe462935?url=http%3A%2F%2Find.ie%2Fphoenix%2F&userId=2790543&signature=4c11c7cb082d4c41>
>>>>>>> 
>>>>>>> -- 
>>>>>>> Gregory Casamento
>>>>>>> GNUstep Lead Developer / OLC, Principal Consultant
>>>>>>> http://www.gnustep.org 
>>>>>>> <https://mailtrack.io/trace/link/395c4e14c1327f2eb68a925849b3ef4405ef1c3c?url=http%3A%2F%2Fwww.gnustep.org&userId=2790543&signature=97bd0bcba9a39e96>
>>>>>>>  - http://heronsperch.blogspot.com 
>>>>>>> <https://mailtrack.io/trace/link/df75d951421ec7ec49a7f3777a60a26416e028ad?url=http%3A%2F%2Fheronsperch.blogspot.com&userId=2790543&signature=9831445b2546de15>
>>>>>>> http://ind.ie/phoenix/ 
>>>>>>> <https://mailtrack.io/trace/link/aae8e7cc987e35195aa951657c98b8697f0f1d6e?url=http%3A%2F%2Find.ie%2Fphoenix%2F&userId=2790543&signature=124dae0a65061977>_______________________________________________
>>>>>>> Discuss-gnustep mailing list
>>>>>>> discuss-gnus...@gnu.org <mailto:discuss-gnus...@gnu.org>
>>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep 
>>>>>>> <https://mailtrack.io/trace/link/f80f650ce2e69eb21b34eff589f9ace84a85b5ba?url=https%3A%2F%2Flists.gnu.org%2Fmailman%2Flistinfo%2Fdiscuss-gnustep&userId=2790543&signature=fd9e027ef774428f>
>>>>> 
>>>>> _______________________________________________
>>>>> Gnustep-dev mailing list
>>>>> Gnustep-dev@gnu.org <mailto:Gnustep-dev@gnu.org>
>>>>> https://lists.gnu.org/mailman/listinfo/gnustep-dev 
>>>>> <https://mailtrack.io/trace/link/12db2ea57bbeafe9fb5617a92f224d44ca31af35?url=https%3A%2F%2Flists.gnu.org%2Fmailman%2Flistinfo%2Fgnustep-dev&userId=2790543&signature=69fbc0c26214836b>
>>>>> -- 
>>>>> Sent from Gmail Mobile
>>>> 
>>> 
>> 
> 
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org 
> <https://mailtrack.io/trace/link/f96c84969d3eb1649c6152bfd4e969a2d0bc04ca?url=http%3A%2F%2Fwww.gnustep.org&userId=2790543&signature=cf673d8f7c9de2ee>
>  - http://heronsperch.blogspot.com 
> <https://mailtrack.io/trace/link/6dcc6d47fb32cb89a517b10436520e8740ac82ac?url=http%3A%2F%2Fheronsperch.blogspot.com&userId=2790543&signature=6596886ce09bf75f>
> http://ind.ie/phoenix/ 
> <https://mailtrack.io/trace/link/29eac4e9399908a6ec029d8842d4a0c867a6b255?url=http%3A%2F%2Find.ie%2Fphoenix%2F&userId=2790543&signature=b50eb38ce5efa054>--
>  
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org <http://www.gnustep.org/> - 
> http://heronsperch.blogspot.com <http://heronsperch.blogspot.com/>
> http://ind.ie/phoenix/ <http://ind.ie/phoenix/>
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to