Since the URHO3D_PCH build option is made available to support non-PCH build, our build system does not rely on precompiled header to include the Urho3D.h export header anymore. The export header is auto-included by one of Urho3D headers when it is required using the right format with the help of URHO3D_IS_BUILDING compiler define. As such, there is no need to explicitly include Urho3D.h in external project too. Sorry for the flip-flop.
Also remove CI build for shared lib type. It is anyway just an emulation as Emscripten does not support dynamic library (yet) and our earlier issue with emar for static lib type has been fully resolved. Test [ci package] for Emscripten.
It is now a library user own's responsibility to include the Urho3D.h in their source code. Or to include it as part of their own precompiled header similar to what Urho3D project has done.
Unified the switch to output material list to -l in both AssetImporter & OgreImporter.
Removed the "use local IDs" toggle from editor as that can be specified with the import options.
Changes:
- Avoid globbing engine source files twice.
- Setup folder group for VS and Xcode. Also group object files according to 3rd-party library name.
- New define_source_files() macro.
Other changes in the commit:
- Change build option from URHO3D_BUILD_TYPE to URHO3D_LIB_TYPE. Default value is STATIC.
- Automatically add compiler definition 'URHO3D_STATIC_DEFINE' when linking with Urho3D library statically.
- Move LuaScript subsystem from Extra/ to Engine/.
- Enable FindUrho3D module to also detect Urho3D library target when the FindUrho3D module is being used internally by Urho3D project.
- Configure to build all the samples for iOS and Android platforms also when option to build samples is enabled.
- Export all the Register*Library() global functions.
- Rewrite all the tools, samples, and extras targets to link against Urho3D library.
TODOs:
- Combine engine sub-libraries into one.
- Test builds on non-Linux platforms.
Change build option name from ENABLE_LUA_JIT to ENABLE_LUAJIT.
Change tolua++ lua scripts to be compatible with both LuaJIT and Lua. Replace toluabind.c with the corresponding bytecode.
Moved UIElement default virtual function implementations to the header.
Removed clip border from the default style LineEdit, as some letters (eg. lowercase y) will clip with the font size used in the editor & console.