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.
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.
Added note in documentation about lack of space between command line option and its parameter.
Prepend Materials/ to the material list written by OgreImporter (assume "standard" materials subdirectory.)
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.
These macros may be used later not just to setup frameworks but also
other linker flags.
Renamed setup_ios_frameworks -> setup_ios_linker_flags.
Renamed setup_macosx_frameworks -> setup_macosx_linker_flags.
Fixed renderer raycasts returning wrong distance.
Added caseSensitive parameter to several String functions.
Added option to convert file extension to lowercase in GetExtension() and GetFileNameAndExtension() functions.
Removed unnecessary lowercase conversion of extensions, and complicated string compare logic.