When cross-compiling we have already defined '--sysroot' to find the direct library dependencies. However when a shared library has its own dependencies (DT_NEEDED) then we need to supply extra linker flags to help the linker to find those indirect library dependecies in the sysroot.
Actually we also had this problem for 32-bit ARM cross-compiling, but we cheated in the earlier CI build jobs by using Linaro/Raspbian compiler toolchain. Somehow the Raspbian's linker simply "ignores" those indirect library dependencies or it uses other mean to locate them (but I doubt that), and so it does not have linker issues with libreadline.so (depends on tinfo), libGLESv2.so (depends on glapi), etc. The other ARM compiler toolchains from Linaro seem to be more strict in this regard. Most likely the raspbian's linker is a gold linker.
This commit could also potentially fix a known issue in our FindUrho3D.cmake module where we have to hardcode the library dependencies that libUrho3D.so in turn depends on (to be investigated later).
Add a new build option "ARM_ABI_FLAGS" for supplying additional ABI compiler flags when targeting generic arm.
Fix Linux build from using OpenGLES instead of GLEW, fix RPI build from using wrong OpenGLES library, fix iOS build from using arm-specific compiler flags directly which would cause problem in universal binary build containing iphonesimulator archs as well.
And other minor refactoring.
-Has been tested by running Urho3DPlayer with the 12_PhysicsStressTest script
(the file copied in place of NinjaSnowWar.as requested)
-built with "-std=gnu++14 -I/usr/include/boost" for the CMAKE_CXX_FLAGS
and "-I/usr/include/boost" for the CMAKE_C_FLAGS.
** /usr/include/boost contains a simlink pointing to itself so that boost/
preprocessor____ can be found
-Networking still doesn't work, so NinjaSnowWar shouldn't work
-Debug builds did not work for me: see http://urho3d.prophpbb.com/topic2151.html
-Defining FORCE_AS_PORTABLE can be used to force it to use the generic build
with, for example, a gcc build (which should allow more apples-to-apples
testing of the efficiency of the bindings)
-Discussion of this work originally at http://urho3d.prophpbb.com/topic2044.html
Via the following source file property "EMCC_OPTION". The supported property values are: js-library, pre-js, post-js, embed-file, preload-file, shell-file. The files are added as link dependency so a relink will automatically occur when they are modified (have newer timestamp than target).