Also:
- fix Android-CI build which does not need the symlink creation in the first place.
- fix an existing Xcode build configuration bug which was left undetected until now.
This is only applicable for CPACK when creating RPM and DEB software packages. The CPack and CMake installation dir are now both set to /usr/local.
This commit also makes it possible to generate Urho3D.pc for Android platform now. Note the default installation dir for Android is /user instead (Android has its own convention as set by android.toolchain.cmake).
The following changes address the shortcomings of our current release mechanism detected from our last release.
- Define and set RELEASE_TAG environment variable only when a git tag conform to a release tagging matching regex "\d+\.\d+".
- Change the logic to allow the automated rake tasks to be triggered on a 'tag' branch properly.
- Fix the 'git rebase' command to use the branch pointed by TRAVIS_BRANCH environment variable as baseline, instead of assuming it to be always 'origin/master' as before.
- Change Urho3D library versioning CMake module to omit the version patch number when there is none, i.e. 1.32 instead of 1.32.0.
These new CI builds will perform the build test on the DirectX code path which is currently not covered in any of our existing CI.
The CI builds should also improve the detection of any breakage caused by build script changes for MinGW compiler.
If the option is not set, Urho3D CMake build script by default configures it to match the currently running OS X version. On Travis-CI that is 10.9 which is too high for binary packaging. Closes#447.
The launcher activity will only be shown when there are actually more samples built into the deployed apk. If no other samples then the launcher will just launch Urho3DPlayer without prompting. Otherwise a list view is presented in the launcher activity to let user to choose which sample library to be loaded.
Due to unloading of shared library is not supported from Java side, currently once a sample library is being loaded, the launcher cannot unload the library and let user to choose other samples. Until a workaround is found, user would have to perform a long pressed on a home button, close the app, and restart it again from scratch.
When a release tag is detected in a commit, instruct CI build to perform a released package build that uploaded into release directory instead of Snapshots directory.
- Prevent packaging from being accidentally invoked by a pull request or a commit on non-master branch.
- Generate documentation before packaging if it is not yet generated in previous step.
- When packaging for iOS platform, rebuild Urho3D library as Mach-O universal binary.
- When packaging for Linux platform, also invokes RPM and Debian CPack generators.
The purpose of Urho3D-CMake-common module is to store all the commonly used CMake commands and macros in one place so that they can be reused by other external projects using Urho3D as external library by simply including this module in their own CMakeList.txt.
- Revert back CMake version. Use CMake -Wno-dev option to suppress the policy warning for CMake 2.8.12 early adopter.
- Since the new policy is not in place, set some more target property to prevent Urho3D static dependency libs from being transitively link to other targets linking to Urho3D.
Since the CMake minimum is bumped up, set the policy CMP0022 to NEW. Incidentally it is also required to be so to stop the static libraries dependency from being transitively get included to other targets that links to Urho3D shared library.
- Close issue #67, Urho3D iOS library should be built correctly now (either as single arch or as multiple archs Mach-O universal binary). Urho3D library build for Mac OS X and iOS platforms do not rely on CMake hack 'object-collecting' approach anymore. It uses Apple static linker 'ld' tool to merge all objects from third-party *.a directly.
- Add new custom target (Urho3D_universal) for iOS platform to build a single Mach-O universal binary library consists of both iphoneos (universal ARM archs) and iphonesimulator (i386 arch).
- Introduce PLATFORM_PREFIX (ios-, raspi-, android-) to prefix the build and output directories (Build, Bin, Lib).
- Correct Xcode-specific build setting for Mac OS X desktop build to use the latest OS X SDK but set deployment target to current OS X of the build system, unless CMAKE_OSX_DEPLOYMENT_TARGET is set explicitly to build for other target.
- Temporary workaround for CMake/Xcode generator bug where it always appends '/build' path element to SYMROOT attribute and as such the items in Products are always rendered as red as if they are not yet built.
- Change Assimp target to use setup_library() macro so that it gets the same settings (and workaround) as all other targets.
- Add a conditional check to prevent MSVC to build 'buildvm-android' target as it is not supported at this moment.
- Prevent 'make clean' or its equivalent to remove the generated ScriptAPI.dox and LuaScriptAPI.dox in the 'Docs' subdirectory.
- Always refresh the generated API Doxygen files before building 'doc' target when the tools are available.
- Move document-build binary directory into the respective project main binary directory.
- Move the temp. build files for documentation building to its own build directory.
- Add new build option to include documentation build as part of the normal build (not enabled by default).
- Document the documentation building process.
It appears CMake has automatically prepended "Urho3D" to built-in CMAKE_INSTALL_PREFIX variable, so we don't need to prefix the path one more time. Also in the commits:
- Fix documentation on CMake module search path for Windows platform.
- Unified SDK destination installation for Windows and non-Windows platforms.
- Replace global include directories to SDL and export header to locally scoped include directories.
- Enhance Urho3D.pc generation to also provide additional compiler flags for DEBUG/RELEASE/RELWITHDEBINFO as comments/references.
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.
The following platforms should be now supported:
Windows, Linux, Mac OS X, IOS, Android, and Raspberry Pi. Not all platforms are fully tested yet.
Cross-compilation may work on GCC/CLang only.