FTR thank you for that, and for spotting -androideabi16!

On Wed, Feb 13, 2019 at 5:20 PM Jordan Schidlowsky <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> 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>
> 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> wrote:
>>
>> Reading through the toolchain file
>> <https://android.googlesource.com/platform/ndk/+/master/build/cmake/android.toolchain.cmake>,
>> 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>
>> 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> 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> 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> 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> 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>
>>>>> 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> 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> 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> 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: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/ddde09d325c4a435e025a98cecb523c42a3faad5?url=http%3A%2F%2Fwww.gnustep.org&userId=2790543&signature=7d37ec23bb82ff44>
>>>>>>>  - http://heronsperch.blogspot.com
>>>>>>> <https://mailtrack.io/trace/link/df5b3556d0922a9f737f08b0905d6385e611c5f0?url=http%3A%2F%2Fheronsperch.blogspot.com&userId=2790543&signature=6bb167a403644460>
>>>>>>> http://ind.ie/phoenix/
>>>>>>> <https://mailtrack.io/trace/link/92bcebdbb9fc372e2cf08a7e499372cc1cd5d151?url=http%3A%2F%2Find.ie%2Fphoenix%2F&userId=2790543&signature=8fd8e7cffa9021e7>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Gregory Casamento
>>>>>> GNUstep Lead Developer / OLC, Principal Consultant
>>>>>> http://www.gnustep.org
>>>>>> <https://mailtrack.io/trace/link/1247d0089e9dd2e1ac83c838552d393752c8b833?url=http%3A%2F%2Fwww.gnustep.org&userId=2790543&signature=5a652f77cc91a2ea>
>>>>>>  - http://heronsperch.blogspot.com
>>>>>> <https://mailtrack.io/trace/link/ff75bfb4c582f91790e81a5fdd96eeb51aab0274?url=http%3A%2F%2Fheronsperch.blogspot.com&userId=2790543&signature=59cf8dcbd3b3253d>
>>>>>> http://ind.ie/phoenix/
>>>>>> <https://mailtrack.io/trace/link/5bd6878a79f878c78ef8f1630a2dfde8e09e51af?url=http%3A%2F%2Find.ie%2Fphoenix%2F&userId=2790543&signature=043c717e06ac9c32>
>>>>>> _______________________________________________
>>>>>> Discuss-gnustep mailing list
>>>>>> Discuss-gnustep@gnu.org
>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Gnustep-dev mailing list
>>>>>> gnustep-...@gnu.org
>>>>>> https://lists.gnu.org/mailman/listinfo/gnustep-dev
>>>>>>
>>>>> --
>>>>> Sent from Gmail Mobile
>>>>>
>>>>>
>>>>>
>>>
>>
>
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to