Commit Graph

504 Commits

Author SHA1 Message Date
Yao Wei Tjong 姚伟忠
b285bd2325 Enhance the rake make task to also support Ninja. 2015-04-08 17:09:55 +08:00
Yao Wei Tjong 姚伟忠
8ab5ffac52 Add a small chapter on how to setup ccache to work correctly. 2015-04-02 00:06:44 +08:00
Yao Wei Tjong 姚伟忠
41d9ab29a9 For Travis CI - add CI build jobs for Direct3D 11.
Fix Emscripten build due to earlier faulty fix on MinGW build to support building of PackageTool for both host and target systems.
2015-03-30 23:02:01 +08:00
Yao Wei Tjong 姚伟忠
377fd30e9a Minor code cleanup on handling of URHO3D_D3D11 and URHO3D_OPENGL. 2015-03-30 20:22:26 +08:00
Yao Wei Tjong 姚伟忠
02c2b57cea Minor tweaks and fixes for Emscripten build settings. 2015-03-30 18:36:42 +08:00
Lasse Öörni
d06ffe1445 Merge pull request #680 from urho3d/render-refactor
Render refactor
2015-03-24 23:34:39 +02:00
Lasse Öörni
b7f76ea711 Search for DirectX SDK also on OpenGL build to fix build failure on old Visual Studio (2008/2010) if the SDK is not set as a VS default include directory.
Conflicts:
	CMake/Modules/FindDirect3D.cmake
2015-03-22 15:03:00 +02:00
Lasse Öörni
f9d02e7299 Search for DirectX SDK also on OpenGL build to fix build failure on old Visual Studio (2008/2010) if the SDK is not set as a VS default include directory. 2015-03-22 14:51:40 +02:00
Yao Wei Tjong 姚伟忠
d2ea0ca934 Finetune the default test timeout value for Emscripten platform.
We have a time constraint on Travis CI side for all our CI builds and tests. Default value of 10 for Emscripten and 5 for native platform is also inline with Emscripten's claim that asm.js is about 50% slower than native speed.
2015-03-14 12:46:15 +08:00
Yao Wei Tjong 姚伟忠
3503a1069e Fix test case setup. Only add test case when URHO3D_TESTING is enabled. 2015-03-12 18:58:31 +08:00
Yao Wei Tjong 姚伟忠
8a77399bd0 Fix integration tests execution for Emscripten platform.
A test case is considered passed when the html exits as the result of emscripten_force_exit() function being called, which happens when the engine's elapsed time reaches URHO3D_TEST_TIMEOUT seconds. When something goes wrong, the engine's elapsed time does not progress as per normal, in this case the emrun's timeout would kick in and terminate the test case with failed exit status. The EMRUN'S timeout is set to be 2 times URHO3D_TEST_TIMEOUT auotmatically.
Add new build option EMSCRIPTEN_EMRUN_BROWSER to select which browser to use for testing. Default is 'firefox'. Refer to https://github.com/kripken/emscripten/issues/3234 to apply the recommended Firefox preference setting for emrun.
2015-03-12 18:04:16 +08:00
Yao Wei Tjong 姚伟忠
10e18da92e Slightly improve code size and startup speed for Emscripten platform. 2015-03-12 11:30:47 +08:00
Lasse Öörni
988f1fdc33 Merge branch 'master' into render-refactor 2015-03-07 17:59:37 +02:00
Yao Wei Tjong 姚伟忠
693aeb97a8 Add '--emrun' to general linker flag var instead of just for debug. 2015-03-07 12:14:53 +08:00
Yao Wei Tjong 姚伟忠
0fe597223f Add initial support for integration tests on Emscripten platform.
At the moment the 'make test' cannot be run non-interactively yet on Linux host and Mac OS X host systems due to what-could-be a bug in 'emrun' script. The issue with 'emrun' has been reported to upstream (https://github.com/kripken/emscripten/issues/3234).
2015-03-07 12:00:47 +08:00
Yao Wei Tjong 姚伟忠
6a145befa5 Misc. clean up. [ci skip] 2015-03-05 21:57:31 +08:00
Yao Wei Tjong 姚伟忠
6c3d32d64a Use Urho3D custom HTML shell for Emscripten build.
Simplify the custom command for share data generation since we are not going to "fix" the UUID issue of the file_packager.py anymore. Although this would mean the slightest change in the output JS file caused by UUID change could force a long relink process in our build.
For Travis CI - upload Emscripten HTML5 samples to Urho3D main website.
[ci package]
2015-03-05 16:23:59 +08:00
Yao Wei Tjong 姚伟忠
e7f6e04eec Preserve the JS output file timestamp to avoid unnecessary re-link.
At the moment a re-link may still take place due to a limitation of Emscripten's file_packager.py tool.
2015-03-04 00:28:59 +08:00
Yao Wei Tjong 姚伟忠
4d34d0a626 Add new Emscripten build option for creating shared data file. 2015-03-03 23:32:27 +08:00
Yao Wei Tjong 姚伟忠
2a6401eb54 Code cleanup on setup_emscripten_linker_flags CMake macro. 2015-03-03 13:14:49 +08:00
Yao Wei Tjong 姚伟忠
02572a9ec5 Add generic support for embedding and loading files for Emscripten.
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).
2015-03-03 01:16:40 +08:00
Yao Wei Tjong 姚伟忠
3af78c291b Code cleanup on CMake/Emscripten toolchain file.
Remove hardcoding that we don't need.
2015-03-01 00:23:24 +08:00
Yao Wei Tjong 姚伟忠
52ac4912b4 Minor code clean up on setting up the RPI supported ABIs.
[ci skip]
2015-02-28 12:19:01 +08:00
Yao Wei Tjong 姚伟忠
536b0a5429 Add new build option for better targeting Raspberry Pi platform. 2015-02-27 22:19:44 +08:00
Yao Wei Tjong 姚伟忠
e6908cf859 Add Emscripten 'aggessive variable elimination' flag on Release build. 2015-02-26 16:14:07 +08:00
Yao Wei Tjong 姚伟忠
ddcdf8ed10 For Travis CI - speed up Emscripten Debug configuration build. 2015-02-26 15:54:10 +08:00
Lasse Öörni
a936eab7c7 Initial D3D11 constant buffer handling. If URHO3D_D3D11 option given, disable OpenGL, but error out on non-Windows platforms. 2015-02-26 02:50:59 +02:00
Lasse Öörni
9f129ecd51 Merge branch 'master' into render-refactor 2015-02-23 01:43:02 +02:00
Lasse Öörni
281809121c Skeleton of D3D11 graphics classes. Does not render anything visible yet and many functions lack implementation. 2015-02-22 22:44:12 +02:00
Yao Wei Tjong 姚伟忠
10e477bbc8 Add flag to consider 'unresolved symbol' as an error. 2015-02-16 14:51:28 +08:00
Yao Wei Tjong 姚伟忠
d3f90cbe08 Make the URHO3D_LUA build option available for Emscripten build. 2015-02-16 07:23:10 +08:00
Yao Wei Tjong 姚伟忠
b594db841f Fix MinGW build regression issue. 2015-02-13 23:08:22 +08:00
Yao Wei Tjong 姚伟忠
34de545b4d For Travis CI - Fix Emscripten CI build with Debug build configuration. 2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
c48a46303b Use -g4 flag for Emscripten Debug configuration build.
[ci package]
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
24e70ecd60 For Travis-CI - reduce number of samples in Emscripten build.
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.
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
a77e24d8ad Enable external project macro users to find and use PackageTool.
Adjust software packaging for Emscripten.
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
bb438ac6d9 Fetch the Emscripten SDL2 port in an orderly fashion. 2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
85c893a83d Attempt to enable CI build for Emscripten. 2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
ef38543b5a Merge custom output command into custom target for resource packaging.
Add additional logic on Windows host to prevent unnecessary re-linking due to repackaging on each build. There is still no easy way on Windows host to skip repackaging though.
Eliminate the 'Application::GetSubsystem<Engine>()' call on each frame.
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
a66df72ff5 Fix host tool building and relinking dependency.
Also fix an issue with CMake reconfiguration where the internal cache work against the regeneration of the custom RESOURCE_CHECK target.
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
8471dcf3e4 Add option to package resource dirs and treat those dirs as build deps.
Fix static library building using emar instead of ar (from host compiler toolchain).
2015-02-13 21:31:59 +08:00
Yao Wei Tjong 姚伟忠
639b4ec3f7 Revert back the Urho3D CMake common module. 2015-02-13 21:31:59 +08:00
hdunderscore
92fe5d3c89 -The suffix is important on Windows when running CMake 'execute_process' in enable_pch, otherwise execute_process will not recognize the compiler as a file.
-Also reduced usr/bin/ar to ar, as it was invalid on Windows.
2015-02-13 21:29:10 +08:00
Yao Wei Tjong 姚伟忠
6e0ff48059 Suppress linker warnings. Minor doc update. 2015-02-13 21:23:05 +08:00
Yao Wei Tjong 姚伟忠
19ab396e74 Add new Emscripten/CMake toolchain file based on Urho3D convention.
Use EMSCRIPTEN_ROOT_PATH environment variable to specify the root path to the emscripten, instead of the original EMSCRIPTEN environment variable exported in emsdk_set_env.sh.
This is because the original EMSCRIPTEN environment variable name clashes with our build scripts.
2015-02-13 21:23:05 +08:00
Yao Wei Tjong 姚伟忠
6763207787 Complet the rebase to master branch. 2015-02-13 21:23:05 +08:00
badpixels
7061421425 Make sure -s USE_SDL=2 is part of compiler command line when building Urho3D library 2015-02-13 21:23:05 +08:00
t
395191e991 eliminate some compiler warnings 2015-02-13 21:23:05 +08:00
Lasse Öörni
b18ae1809c Hack fix for build failing on MinGW due to -include Precompiled.h option included multiple times for the generated Lua API .cpp files without a space in between. 2015-02-07 23:54:46 +02:00
Yao Wei Tjong 姚伟忠
564b77c39f Fix Ninja build by adding directory containing PCH to its search path.
Officially add Ninja build support. Close #653.
2015-02-06 13:49:32 +08:00
Yao Wei Tjong 姚伟忠
1e7ec258d2 Better CMake error message when compiler not able to handle the flags.
With the precompiled header support now properly enabled for GCC (including all other cross-compiling toolchains based on GCC) and Clang, any incompabitility between the C++ compiler and the compiler flags required by Urho3D will be thrown out earlier at the time when CMake is about to generate the build tree, which is a good thing. Previously user would probably only know this much later when trying to build the project.
2015-02-03 22:38:27 +08:00
Lasse Öörni
4d69285422 Update to kNet master branch latest revision, with Urho's custom flow control re-applied on top. Fixes #645. 2015-02-03 01:56:07 +02:00
Yao Wei Tjong 姚伟忠
060801abcc Correct MinGW sysroot path for RedHad-based host system.
[ci skip]
2015-02-02 20:42:23 +08:00
Yao Wei Tjong 姚伟忠
cfff44873f Bump missed out files. [ci skip]
$ for f in `git grep -l '2008-2014 the Urho3D project'`; do perl -pi -e 's/2008-2014 the Urho3D project/2008-2015 the Urho3D project/g' $f; done
2015-02-01 08:16:05 +08:00
Lasse Öörni
bb2ebf7568 Bump copyright to 2015. 2015-01-31 21:03:53 +02:00
Yao Wei Tjong 姚伟忠
88220f4f8a Simplify the variables used in two-phase setups of enable_pch() macro. 2015-01-30 11:46:07 +08:00
Yao Wei Tjong 姚伟忠
8e81d3ff36 Use regex replacement to handle path with spaces in between correctly.
Enhance build scripts to handle source tree and build tree with spaces.
Fix PCH generation with incorrect compiler flags caused by -fPIC and -fpic from being added at the same time.
Fix compiler warning on Android platform with PCH enabled on the external main project due to CMake bug in 'VISIBILITY_INLINES_HIDDEN' implementation.
Close #637.
2015-01-29 20:15:13 +08:00
Yao Wei Tjong 姚伟忠
4db362f95c Use the actual dependency list returned by the compiler. 2015-01-29 16:13:43 +08:00
Yao Wei Tjong 姚伟忠
9c61a7673b Add option to exclude individual C++ source file from using PCH.
Clean up enable_pch() macro and minor update on code comments.
2015-01-29 16:13:43 +08:00
Yao Wei Tjong 姚伟忠
51178c4328 Enable PCH for Assimp library with GCC/Clang compilers too.
Simplify to always use force include when enabling the PCH.
2015-01-29 16:13:43 +08:00
Yao Wei Tjong 姚伟忠
e0bab60f46 On MSVC also enable PCH in two phases to cater for generated C++ files. 2015-01-29 16:13:43 +08:00
Yao Wei Tjong 姚伟忠
7ddd46b172 Move GenerateExportHeader module inclusion to Urho3D common module. 2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
11814c9cc6 Add check so that precompiled header is only included for C++ sources. 2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
18261e3d2a Use Cmake function to determine whether to add compiler export flags. 2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
f50ffaff8c Fix precompiling header file for Clang. [ci rebase] 2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
8f2ac49cb0 Suppress GCC/Clang warning on pragma once on main file.
Fix precompiling header file on MinGW builds.
2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
fdcd44381a Keep the CMake version less than 2.8.12 happy. 2015-01-29 16:13:42 +08:00
Yao Wei Tjong 姚伟忠
8743413816 Attempt to enable precompiled header support for GCC and Clang. 2015-01-29 16:13:41 +08:00
Yao Wei Tjong 姚伟忠
b82fe08521 Fix wrong include search path for Bullet and Lua. Fix #640. 2015-01-27 16:46:52 +08:00
Yao Wei Tjong 姚伟忠
fd84488a73 Add new build option to setup main executable as console application.
The new build option is only applicable for Windows platform only.
2015-01-21 16:50:09 +08:00
Yao Wei Tjong 姚伟忠
69fdf1edfb Fix cross-compiling build due to incorrect CMake conditional check.
Related to commit f9158a045e.
2015-01-18 22:52:28 +08:00
Yao Wei Tjong 姚伟忠
f9158a045e Install binaries to the "bin" subdir relative to install prefix.
Fix the Android installing and packaging steps which previously failed to install all the sample libs.
Close #616.
2015-01-18 22:29:57 +08:00
Yao Wei Tjong 姚伟忠
05dd995b85 Refactor all the codes and scripts to use the renamed 'bin' subdir. 2015-01-18 21:40:54 +08:00
Yao Wei Tjong 姚伟忠
b86c4927aa Enhance setup_main_executable() to support MACOSX_BUNDLE individually.
When the URHO3D_MACOSX_BUNDLE build option is not set, passing the MACOSX_BUNDLE explicitly when setting up a main executable target will make the corresponding target to be built as a bundle.
2015-01-18 15:59:11 +08:00
Yao Wei Tjong 姚伟忠
33d17b6abb Clean up the file formatting on the new template files. 2015-01-17 18:50:12 +08:00
Yao Wei Tjong 姚伟忠
8a421a4012 Add new files for URHO3D_MACOSX_BUNDLE build options. 2015-01-17 18:41:33 +08:00
Yao Wei Tjong 姚伟忠
1b2dcac1d2 Add new URHO3D_MACOSX_BUNDLE build option to build bundled apps on OSX. 2015-01-17 18:34:22 +08:00
Yao Wei Tjong 姚伟忠
c6045b99b7 Skip header installation when destination include dir is not defined.
This should prevent cross-compiling with host tool building from installing header files for the host target.
2015-01-16 13:59:37 +08:00
Yao Wei Tjong 姚伟忠
8682ba781a Install header files for Lua/LuaJIT and tolua++ 3rd party libraries.
Fixes #610.
2015-01-16 13:20:44 +08:00
Yao Wei Tjong 姚伟忠
bffa727e2e Attempt to suppress Xcode multi-group resource reference warnings. 2015-01-14 13:32:11 +08:00
Yao Wei Tjong 姚伟忠
1f0897ec9c Fix the dumb version of post-CMake command to always exit successfuly.
External project may not have install steps defined but the post-CMake fix is still being applied causing build failure previously.
2015-01-11 22:01:42 +08:00
Yao Wei Tjong 姚伟忠
8bb7d680ed Dumb down the post-CMake fix for iOS platform. Fixes #602.
The post-CMake fix is now reapplied on each iOS build without first checking it needs the fix or not. But since the 'sed' fix is harmless to be repeated, it is ok to do so.
The original 'smart' post-CMake fix uses shell [] operator but have to be removed to keep the CMake 3.0.0 and 3.0.1 users happy.
[ci skip]
2015-01-11 13:50:45 +08:00
Yao Wei Tjong 姚伟忠
3ae2942ad2 Move the cricial post-CMake fix into CMake rules for iOS platform.
This should ensure the Xcode project generated from user calling cmake-gui directly or cmake directly (not via our build scripts) would also geting the critical fix, and also whenever CMake performs a rerun internally then our post-CMake fix is reapplied automatically.
2015-01-09 18:02:42 +08:00
Yao Wei Tjong 姚伟忠
35307869ee Clean up to remove unused CMake variables.
LIBS is now defunct. No more dual purpose usage.
INCLUDE_DIRS_ONLY is renamed to INCLUDE_DIRS.
LINK_LIBS_ONLY is renamed to LIBS.
2015-01-07 21:51:00 +08:00
Yao Wei Tjong 姚伟忠
bde0b2bcfe Fix Android build on Windows host system without MKLINK capability. 2015-01-06 22:20:04 +08:00
Yao Wei Tjong 姚伟忠
2e9d9f4806 Fix MinGW build on Windows host system. 2015-01-06 17:25:58 +08:00
Yao Wei Tjong 姚伟忠
71862e42c1 Reinstate the MSVC "workaround" include path fix. 2015-01-04 22:40:40 +08:00
Yao Wei Tjong 姚伟忠
2b353512c3 Fix freetype2 headers installation - missed one file earlier. 2015-01-04 22:40:40 +08:00
Yao Wei Tjong 姚伟忠
4c17b03173 Remove existing include path abstraction.
Remove engine's sub-CMakeLists.txt.
2015-01-04 22:32:42 +08:00
Yao Wei Tjong 姚伟忠
1cbbb6b805 Finalize SDK-like include dirs clean up. Fix build using MSVC. 2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
a4a4cde236 Refactor all CMake toolchains to reset CMAKE_INSTALL_PREFIX variable.
Add new build options for specifying tool-prefix and target-sysroot in cross-compiling build.
Add new IOS_SYSROOT variable to store the path to iOS sysroot and use it to set CMAKE_FIND_ROOT_PATH variable.
Now also generate pkg-config Urho3D.pc for iOS platform.
For Travis CI - simplify SDK installation logic. Use DESTDIR=~ to avoid sudo.
2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
1b465fb704 Clean up FindUrho3D.cmake module.
Add new build options to override 64-bit Linux package setup for Debian and Redhad -based host systems.
For Travis CI - fix 64-bit RPM package generation to install library in /usr/lib64, also fix external project build test using Urho3D library from SDK.
2015-01-04 22:32:41 +08:00
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 姚伟忠
16e05862ab Preparation for SDK include dir cleaning up. 2015-01-04 22:32:40 +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 姚伟忠
8e6fe0da14 Refactor LuaJIT build scripts - no more generated CMakeLists.txt. 2015-01-04 22:32:39 +08:00
Yao Wei Tjong 姚伟忠
67e415acc8 Fine tune LuaJIT target arch detection logic. 2015-01-04 22:32:39 +08:00
Yao Wei Tjong 姚伟忠
4db162eb62 Lua/LuaJIT host tool building while cross-compiling in one go.
For Travis CI - reenable CI build with Lua/LuaJIT build option turned on.
2015-01-04 22:32:39 +08:00
Yao Wei Tjong 姚伟忠
d75c592bd2 Add new engine parameter to set the location of resource prefix path.
Remove temporary measure instead use the new URHO3D_PREFIX_PATH environment variable to set the resource prefix path for testing the executables.
2015-01-04 22:32:38 +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 姚伟忠
514847fb99 Adjust batch files and shell scripts to take build tree as user input.
Refactor to use a single generic batch file/shell script that does the actual work.
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