Commit Graph

135 Commits

Author SHA1 Message Date
Yao Wei Tjong 姚伟忠
4feb135281 Clean up SDK include dirs. Refactor FindUrho3D CMake module.
For Travis CI - add new steps to install the Urho3D SDK and to reference Urho3D library from the installed SDK.
2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
325a4f7365 Refactor to use the newly renamed Source/Urho3D directory. 2015-01-04 22:32:40 +08:00
Yao Wei Tjong 姚伟忠
98d410091e Fix temporary measure for creating asset dir symlink in Ubuntu host.
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.
2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
20e21050e9 Rename everything 'RASPI' to 'RPI'. [ci rebase] 2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
d8a3b8b4f4 Make repo root is also CMake source tree for the Urho3D project.
Build tree location is now fully user defined. The build tree location could also be the same as source tree, although it is not recommended.
2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
4f60123516 Move CMake modules and toolchains to the new source tree. 2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
46adfcfe46 Set the CPack default installation dir to be the same as CMake one.
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).
2014-11-25 13:40:35 +08:00
Yao Wei Tjong 姚伟忠
e7b0808b12 Misc. fixes in the build script to improve the release mechanism.
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.
2014-11-23 20:01:32 +08:00
Yao Wei Tjong 姚伟忠
edc6529491 Init the URHO3D_64BIT build option to 1 when Android ABI is arm64-v8a. 2014-11-19 21:48:25 +08:00
Yao Wei Tjong 姚伟忠
eda52984ac Add initial support for 64-bit Android ABIs. 2014-11-19 21:48:25 +08:00
Lasse Öörni
b325ba5195 Support excluding 2D functionality from the build (CMake option URHO3D_URHO2D=0). Removed empty scene creation from the UIDrag example. Make compiling Civetweb conditional of URHO3D_NETWORK. Exclude samples depending on the Controls structure when URHO3D_NETWORK is disabled. 2014-11-17 21:00:02 +02:00
Yao Wei Tjong 姚伟忠
0652ccf394 Fix FindUrho3D CMake module to perform rooted search on MinGW CC build. 2014-11-07 17:01:07 +08:00
Yao Wei Tjong 姚伟忠
899f8334f3 For Travis CI - add CI builds for MinGW + URHO3D_OPENGL=0 combination.
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.
2014-10-30 12:33:11 +08:00
Yao Wei Tjong 姚伟忠
d8177c23de Add "free" keyword to the project about info. 2014-10-21 11:53:11 +08:00
Lasse Öörni
807bd28a9d Add URHO3D_NETWORK CMake parameter to control whether networking support is built. 2014-10-07 19:33:33 +03:00
Yao Wei Tjong 姚伟忠
de93f17310 Refine comment on the PATH_SUFFIX variable. 2014-09-15 13:33:22 +08:00
Yao Wei Tjong 姚伟忠
bebe9b6197 For Travis CI - set the OSX deployment target to 10.7 explicitly.
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.
2014-09-14 22:40:54 +08:00
Yao Wei Tjong 姚伟忠
a5e34ea512 Adjust RPATH to also search lib directory relative to the executables.
Closes #448.
2014-09-13 23:41:09 +08:00
Yao Wei Tjong 姚伟忠
8677e547b0 Remove bom(b) from Readme.txt and update the project tagline. 2014-09-09 22:52:34 +08:00
aster2013
25132bd4a0 ADD URHO3D_PHYSICS AND URHO3D_NAVIGATION OPTIONS. 2014-08-21 12:41:24 +08:00
Yao Wei Tjong 姚伟忠
f7329aa83f Replace with a more proper derived CMake variable for easier maint.
Add short comment on the intent of setting up RPATH.
2014-07-20 13:43:15 +08:00
Yao Wei Tjong 姚伟忠
91c489bdfb Setup RPATH for Mac OS X. Adjust soversion to keep Apple linker happy.
Set CMake policy CMP0042 to NEW for early CMake 3.0.0 adopters to prevent warning message when generating Urho3D project file.
2014-07-19 21:23:11 +08:00
Yao Wei Tjong 姚伟忠
88919f22f7 Setup soversion for Urho3D library and setup RPATH settings for Linux. 2014-07-19 17:46:41 +08:00
Yao Wei Tjong 姚伟忠
cf1a0156e9 Briefly comment the CMake policy settings and update the documentation. 2014-07-17 12:31:02 +08:00
Yao Wei Tjong 姚伟忠
3c77988d37 Set CMake policy CMP0026 to OLD for early CMake 3.0.0 adopters.
This change prevents warning message spams while generating Urho3D project file.
2014-07-16 13:15:11 +08:00
Yao Wei Tjong 姚伟忠
c1b506ee54 Clean up build scripts to avoid code duplication. 2014-05-16 13:12:52 +08:00
Yao Wei Tjong 姚伟忠
b1fbab4953 Be explicit in setting the file permissions when installing.
Closes #352.
2014-05-15 21:14:09 +08:00
Yao Wei Tjong 姚伟忠
d274b190da Fix MinGW build and external project build. 2014-04-05 01:34:48 +08:00
Yao Wei Tjong 姚伟忠
46285baf97 Refactor build scripts to group Urho3D specific build option.
Initial support of project configuration and generation via cmake-gui.
2014-04-05 00:20:56 +08:00
Yao Wei Tjong 姚伟忠
b8368401fd Use alternative way to suppress CMP0022 warning. Closes 287. 2014-03-28 08:51:19 +08:00
Yao Wei Tjong 姚伟忠
6f893483a1 Add RPM and DEB package generator for Raspberry Pi package build. 2014-03-25 12:17:51 +08:00
Yao Wei Tjong 姚伟忠
10cbd8deed Add a simple Android samples launcher activity.
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.
2014-03-18 16:33:27 +08:00
Yao Wei Tjong 姚伟忠
dce461469f For Travis CI - detect release tag and do the necessary automatically.
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.
2014-03-09 16:42:30 +08:00
aster2013
4555aff0c9 Add Box2D. 2014-03-07 13:03:36 +08:00
Yao Wei Tjong 姚伟忠
82b707e66b For Travis CI - more tweaks on the packaging setup. [ci package]
- 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.
2014-02-24 00:16:53 +08:00
Yao Wei Tjong 姚伟忠
c7fe5f6267 For Travis CI - fix packaging for iOS platform. [ci package] 2014-02-21 23:55:16 +08:00
Yao Wei Tjong 姚伟忠
89836f11fc For Travis CI - attempt to make packages on demand. [ci package] 2014-02-21 17:47:04 +08:00
Yao Wei Tjong 姚伟忠
4d565aa401 Add new 'package' CMake built-in target for generating binary packages.
This is in preparation for setting up Travis CI build to upload binary packages to a central hosting server.
2014-02-21 15:43:31 +08:00
Yao Wei Tjong 姚伟忠
48eb60fd8e Rename 'magic' module to 'common' module to reflect its purpose better.
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.
2014-02-18 12:55:13 +08:00
Lasse Öörni
caf080ecbb Initial refactoring of Direct3D9 shaders. ShaderCompiler removed. Bytecode not cached into files yet. 2014-02-02 14:54:46 +02:00
Lasse Öörni
6d5ddc23e0 Bump the copyright for 2014. 2014-02-01 14:37:21 +02:00
Yao Wei Tjong 姚伟忠
e91307ce51 Clean up build scripts to adhere to format convention. 2014-01-13 17:36:00 +08:00
Yao Wei Tjong 姚伟忠
59b2b02888 Fix build using Urho3D as external library. Closes 112.
Add test cases in Travis CI to test build using Urho3D as external library in external (non Urho3D) project.
2014-01-07 22:03:32 +08:00
Yao Wei Tjong 姚伟忠
15c61cb739 Use CMake command to move and rename for portability. Closes #73.
- 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.
2013-12-18 00:33:35 +08:00
Yao Wei Tjong 姚伟忠
60dad27d5f Fix Mac OS X and iOS build from external CMake project.
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.
2013-12-17 08:00:11 +08:00
Lasse Öörni
ba565718e0 Bump required CMake version. 2013-12-15 13:42:15 +02:00
Yao Wei Tjong 姚伟忠
963c46d15b Refactor build scripts.
- 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.
2013-12-15 18:25:00 +08:00
StevenZhang
a17baf2695 make AngelScript an optional module, you can use -DENABLE_ANGELSCRIPT=0 to disable it. 2013-12-02 19:02:39 +02:00
Yao Wei Tjong 姚伟忠
ac6d9f40b0 Fix documentation build on platforms that do not have tool targets.
- 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.
2013-11-27 18:14:45 +08:00
Yao Wei Tjong 姚伟忠
469794689f Refactor to keep the Docs directory clean from temp. build files.
- 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.
2013-11-25 15:10:07 +08:00
Yao Wei Tjong 姚伟忠
19e1e42ca3 Add new 'doc' target for generating Urho3D documentation.
make clean
make all
make doc      <-- New target
make install
2013-11-24 21:12:05 +08:00
Yao Wei Tjong 姚伟忠
f6186456a0 Fix SDK destination installation path for Windows platform.
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.
2013-11-20 15:59:38 +08:00
Yao Wei Tjong 姚伟忠
e83d98f016 Fix Urho3D.pc file for Windows and Raspberry Pi platforms.
Document cross-compiling example using pkg-config for Raspberry Pi platform.
Disable Urho3D.pc file generation for Android and iOS platform.
2013-11-17 21:26:44 +08:00
Yao Wei Tjong 姚伟忠
36620dd819 Avoid hardcoding of include dirs in the Urho3D.pc.in input file.
Also revert decision to use smaller letter case cmake destination directory in previous commit :).
2013-11-16 16:21:13 +08:00
Yao Wei Tjong 姚伟忠
56798dcce9 Fix incorrect include dirs in the Urho3D.pc file.
Also:
- Change the CMake module installation destination to use small letter case.
- Update documentation on pkg-config invocation examples.
2013-11-16 14:49:34 +08:00
Yao Wei Tjong 姚伟忠
d7942132f1 Configure and install Urho3D.pc file for pkg-config tool.
This is useful for Urho3D library user via SDK installation without having CMake installed.
2013-11-15 18:33:51 +08:00
Yao Wei Tjong 姚伟忠
8a571ae437 Document how to install library and how to find it from installed SDK. 2013-11-05 15:52:37 +08:00
Yao Wei Tjong 姚伟忠
300efe0f7d Reinstate comment on RedHat-based system that needs LIB_SUFFIX. 2013-11-04 08:36:15 +08:00
Yao Wei Tjong 姚伟忠
e8fbcf8a82 Add 'install' option for cross-compiling build and IOS as well.
Note: there is a known bug in CMake/Xcode generator that prevents iOS targets (library and bundle) to be installed correctly (see http://public.kitware.com/Bug/bug_relationship_graph.php?bug_id=12506&graph=dependency).
2013-11-04 00:13:49 +08:00
Yao Wei Tjong 姚伟忠
52ff881c54 Add 'install' option (currently only available for native build).
Also enhance FindUrho3D.cmake module to find Urho3D library in the Urho3D SDK installation location.
2013-11-02 16:45:44 +08:00
Yao Wei Tjong 姚伟忠
8ff3348503 Refactor define_dependency_libs macro.
Change to remove the references to engine's sub-library targets which are now defunct. General cleanup of the build scripts.
2013-11-01 17:58:47 +08:00
Yao Wei Tjong 姚伟忠
da155d2b9a Generating all the output files in the desired output directories.
Thus, avoiding the copying and symlinks setup (for Xcode debugging) post-build steps.
2013-10-31 17:27:18 +08:00
Yao Wei Tjong 姚伟忠
e423a26461 Refactor CMake build scripts.
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.
2013-10-28 18:21:18 +08:00
Yao Wei Tjong 姚伟忠
b85a0b3305 Suppress "unused variable" warning for external CMake project also. 2013-10-25 00:32:23 +08:00
Yao Wei Tjong 姚伟忠
a9ed330890 Create sub-projects for Samples/Tools/Extras. 2013-10-22 23:19:03 +08:00
Yao Wei Tjong 姚伟忠
7b24807c32 Combine Engine sources into one place and build as a single target. 2013-10-22 04:16:22 +08:00
Yao Wei Tjong 姚伟忠
d953b36d62 Reverted back decision to also build samples on Android platform.
Although samples should also work for Android platform, currently there is no available mechanism to package each sample app into individual *.apk.
2013-10-21 20:27:08 +08:00
Yao Wei Tjong 姚伟忠
d33ac02538 Refactor build scripts to build Urho3D library as main target.
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.
2013-10-21 02:28:29 +08:00
Yao Wei Tjong 姚伟忠
2af7dbdcd9 Move tolua++ add_subdirectory instruction from main to LuaScript.
This should be part of commit 5dbf83c418.
2013-10-20 00:14:00 +08:00
Lasse Öörni
30ce75fd68 LZ4 compressed package file support. Closes #6. 2013-10-12 15:03:17 +03:00
Yao Wei Tjong 姚伟忠
b5836237e9 Remove dependency on Lua when LuaJIT is enabled.
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.
2013-10-11 02:02:08 +08:00
Yao Wei Tjong
2b90804c6e Fixed LuaJIT build on Linux, both native and cross-compiling.
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.
2013-10-08 12:22:56 +08:00
weitjong
242f317ddd Configure Doxyfile according to the value of USE_OPENGL variable. 2013-10-03 17:41:17 +08:00
weitjong
11ffd62f0c Provide new batch and shell script to clean CMake cache for convenience and document it. Adjust line width of Readme.txt to prevent text overwrap in GitHub view. 2013-10-02 17:04:56 +08:00
Aster Jian
eccf0fefdd Set generated file to CMAKE_CURRENT_BINARY_DIR/generated folder. 2013-09-29 15:01:28 +00:00
Aster Jian
a570bb8ad6 Add LuaJIT support in LuaScript module, please use ENABLE_LUA_JIT to enable it, just test on Windows. 2013-09-29 14:38:03 +00:00
Wei Tjong Yao
09ba853aba Keep CMakeCache.txt in between build script invocation to speed things up. Correct typo error. 2013-09-26 20:56:42 +00:00
Lasse Öörni
26fabce801 Added Civetweb library for HTTP requests.
Implemented basic HTTP request functionality. Not exposed to script yet.
2013-09-09 21:58:24 +00:00
Lasse Öörni
04b00263b0 Moved CharacterDemo to the samples.
Use forward declarations in the samples.
2013-08-27 21:45:43 +00:00
Wei Tjong Yao
463ce2a65d Enabled option to build Urho3D static and shared library (without main entry point) for Android. Fixed debug compiler flags being defined multiple times for Android build. Added post-build command to strip the generated Urho3D shared library if it is built for embedded devices. Enhanced cmake_gcc.sh to automatically fix the generated Eclipse project setting files for Android build. 2013-08-25 08:08:52 +00:00
Lasse Öörni
056a071ed2 Adjusted physics sample materials. Let the boxes fall a bit in the beginning.
Copy export header only if it has changed to prevent unnecessary engine rebuild.
2013-08-22 06:30:41 +00:00
Wei Tjong Yao
594457df82 Removed line to define ENABLE_64BIT for Visual Studio based on cmake generator as the define must already been set explicitly when invoking cmake_vsxxxx.bat in order to get Win64 generator. Fixed the expression to check whether ENABLE_TOOLS is defined. Minor update on build options documentation. 2013-08-18 06:16:16 +00:00
Wei Tjong Yao
ccd6a926ae Added Urho3D library build option for IOS. 2013-08-16 08:56:55 +00:00
Lasse Öörni
a899f7293e Capitalize name of CMake script directory. 2013-08-13 20:51:20 +00:00
Wei Tjong Yao
02512cecf9 In order to move the out-of-source 'build' directory back to Urho3D project root directory, all the source codes sub-directories are now moved down one level to a new directory under project root called 'Source'. 2013-08-09 10:29:22 +00:00