opengisch / OSGeo4A

OSGeo4A is a build environment to cross-compile opensource GIS software for android devices
MIT License
30 stars 22 forks source link

Add support for Android NDK 12 #15

Closed wonder-sk closed 7 years ago

m-kuhn commented 7 years ago

Thanks @wonder-sk Happy to merge if it helps. In the future we will need to switch to clang. gcc has been deprecated in the ndk and Qt 5.7 no longer compiles (requires C++11).

wonder-sk commented 7 years ago

I have few more changes in recipes pending... stay tuned :-)

wonder-sk commented 7 years ago

By the way, how do you mean Qt 5.7 no longer compiles with gcc? Qt project ships 5.7 for armv7 and if I understand correctly it is built with g++

m-kuhn commented 7 years ago

I didn't manage with a quick test (errored out on C++11 features), I think the gcc version shipped with the NDK is just very, very old.

wonder-sk commented 7 years ago

Got such problem too, but it's obviously just something dodgy with Qt5.7 vs cmake.

How to fix it - in Qt/5.7/android_armv7/lib/cmake/Qt5Core/Qt5CoreConfigExtras.cmake

Replace this line:

set_property(TARGET Qt5::Core PROPERTY INTERFACE_COMPILE_FEATURES cxx_decltype)

By this one:

set(CMAKE_CXX_STANDARD 14)

https://bugreports.qt.io/browse/QTBUG-54666 http://public.kitware.com/pipermail/cmake-developers/2016-July/029005.html

m-kuhn commented 7 years ago

Thanks for the hint, will try next week!

wonder-sk commented 7 years ago

@m-kuhn Ready to me merged... everything builds for me (NDK 12 + Qt 5.7 with the patch above)

m-kuhn commented 7 years ago

Nice! I wonder if this could be integrated in the android.toolchain file so it would work with a vanilla Qt 5.7 SDK.

On 23/09/16 08:33, Martin Dobias wrote:

@m-kuhn https://github.com/m-kuhn Ready to me merged... everything builds for me (NDK 12 + Qt 5.7 with the patch above)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/opengisch/OSGeo4A/pull/15#issuecomment-249113868, or mute the thread https://github.com/notifications/unsubscribe-auth/AAj6d4nnUiK_3FOqQ99VJZcwD72bHM0xks5qs3LMgaJpZM4KElPV.

wonder-sk commented 7 years ago

Hmmm I don't really dare to try that: 1. it is something deep inside Qt5's cmake config, 2. it may just go away with a different combination of cmake/qt versions 3. android.toolchain should be generic config without special Qt stuff

m-kuhn commented 7 years ago

android.toolchain is a collection of hacks and poorly implemented, there are a zillion of different versions out there (see e.g. https://github.com/taka-no-me/android-cmake/issues/81#issuecomment-229829753). If there's anything at all that can be done, I don't mind at all.

On 23/09/16 09:13, Martin Dobias wrote:

Hmmm I don't really dare to try that: 1. it is something deep inside Qt5's cmake config, 2. it may just go away with a different combination of cmake/qt versions 3. android.toolchain should be generic config without special Qt stuff

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/opengisch/OSGeo4A/pull/15#issuecomment-249119486, or mute the thread https://github.com/notifications/unsubscribe-auth/AAj6dx-CPPK4h5TDw23af5mTIq9yPY3Bks5qs3wPgaJpZM4KElPV.

m-kuhn commented 7 years ago

Thanks, good stuff!

Were you able to compile QGIS as well? I had trouble with the GCC version check here which failed so it was compiled without C++11 but it worked if I removed the check (and I wonder if we could just require C++11 on QGIS anyway to "fix" this).

wonder-sk commented 7 years ago

Yeah QGIS 2.14 compiled just fine for me - I didn't encounter any problem with GCC version check...