Commit Graph

479 Commits

Author SHA1 Message Date
Yao Wei Tjong 姚伟忠
e7a1b4c069
Make the option not available for Release build config.
Due to how CMake works, this prevention only works for single-config generator.
2018-06-03 21:00:25 +08:00
Eugene Kozlov
47aba2aaa2
Merge pull request #2309 from eugeneko/hash-reverse
Add StringHash reverse support.
2018-06-03 15:12:42 +03:00
Eugene Kozlov
e78c1d7ff5
Merge pull request #2310 from eugeneko/move-containers
Make Urho3D.Containers move-friendly
2018-06-03 12:42:44 +03:00
Yao Wei Tjong 姚伟忠
f27c149779
For CI - explicitly set WASM to off when CI testing for asm.js.
When cache is clear then skip the samples build because build all samples from scratch now exceeds our free time limit from Travis.
Switch to upload the WASM variant of the web samples. This means the samples should run faster on dekstop browsers but might not work on mobile browsers at the moment.
2018-06-02 22:51:09 +08:00
Eugene Kozlov
774f62e4c3 Update docs and CMake description for URHO3D_HASH_DEBUG 2018-06-02 16:02:07 +03:00
Yao Wei Tjong 姚伟忠
40281539f0
Add a new build option to control auto addtion of HTML shell-file. 2018-06-02 17:37:28 +08:00
Yao Wei Tjong 姚伟忠
e65cdac59e
Add build support for Emscripten 1.38.x. Emit WASM by default. 2018-06-02 16:57:49 +08:00
Eugene Kozlov
025714ec4d Change scope of URHO3D_HASH_DEBUG define. 2018-05-22 23:11:25 +03:00
Eugene Kozlov
b75e1015bd Add Vector::Emplace. Fix HashMap::Populate signature. Disable MSVC warnings. 2018-05-03 00:56:09 +03:00
Eugene Kozlov
d0ce35d194 Add StringHash reverse support. 2018-04-29 19:58:10 +03:00
Nicholas Farshidmehr
20c047b743 Fix spelling mistake and remove some whitespace. 2018-03-10 09:52:24 +08:00
Yao Wei Tjong 姚伟忠
1420410edd
Revert back the configuration for VS to use SSE2 instead of AVX.
At the moment this would only disable SDL from using SSE3 instruction set for their audio conversion functions.
Close #2238.
2018-02-26 22:11:46 +08:00
Yao Wei Tjong 姚伟忠
15c94742aa
Add version check logic for macOS deployment target build option.
[skip appveyor] [ci only: OSX]
2018-02-07 10:32:23 +08:00
Yao Wei Tjong 姚伟忠
26c8001480
Tune GCC/Clang to produce generic binary when -march is not specified. 2018-02-04 01:16:59 +08:00
Yao Wei Tjong 姚伟忠
f1c1f5aa42 For CI - setup the lint stage on the primary CI. 2018-01-24 02:06:23 +08:00
urho3d-travis-ci
70049ba582 Travis CI: bump copyright to 2018.
[cache clear]
2018-01-01 05:35:37 +00:00
Yao Wei Tjong 姚伟忠
40516e48c9 Add macro for checking the compiler's C++11 type trait templates.
Modify angelscript.h header file to use our custom compiler define based on the check result to cater for pre-standard Clang compiler toolchain.
2017-12-31 13:48:26 +08:00
Yao Wei Tjong 姚伟忠
92312b2886 Update Android project to cater for SDL upstream changes. 2017-12-17 01:51:32 +08:00
Yao Wei Tjong 姚伟忠
093a5b6105 Adjust compiler flags to enable SSE3 when it is supported. 2017-12-17 01:51:31 +08:00
Yao Wei Tjong 姚伟忠
3ffe7bfee9 Update existing custom CMake modules to work with SDL 2.0.7. 2017-12-17 01:51:31 +08:00
Yao Wei Tjong 姚伟忠
e745577b87 Add new CMake modules for detecting SDL audio/video drivers. 2017-12-17 01:51:31 +08:00
Yao Wei Tjong 姚伟忠
a075fd950f Fix Web build. EMCC version 1.37.25 requires explicit runtime exports. 2017-12-16 22:11:25 +08:00
Yao Wei Tjong 姚伟忠
5af679a974 Fix RPI build. Only support Raspbian Stretch for now. 2017-12-16 08:11:26 +08:00
Yao Wei Tjong 姚伟忠
08b838022b Add CMake messages for deprecated build option usage. 2017-12-15 23:32:46 +08:00
Yao Wei Tjong 姚伟忠
37cba9522d Disable URHO3D_SSE by default (as original intended) for old MinGW. 2017-10-31 21:43:07 +08:00
Yao Wei Tjong 姚伟忠
192903ba32 Fix Android cross-compiling build on Windows host system.
Close #2148.
2017-10-14 12:53:07 +08:00
Eugene Kozlov
c38a14c537 Use variadic SendEvent in Console::HandleTextFinished. Remove URHO3D_CXX11 define. Revert find_package (ODBC REQUIRED). Update porting notes. 2017-08-22 20:39:27 +03:00
Eugene Kozlov
b26903703a Remove URHO3D_CXX11 guards. 2017-08-22 00:45:38 +03:00
Yao Wei Tjong 姚伟忠
9dfff67e97 Support Web build tree path with spaces.
Fix #2078.
2017-08-19 15:12:33 +08:00
Yao Wei Tjong 姚伟忠
3e58ccf41c Revert "Remove temporary workaround which appears to be redundant now."
This reverts commit 4068d2474e.
2017-08-19 15:11:21 +08:00
Yao Wei Tjong 姚伟忠
0d7d0e573d Generate a dummy/initial PCH when using out-of-source build tree only.
Fix #2068.
2017-08-17 07:07:38 +08:00
Yao Wei Tjong 姚伟忠
4068d2474e Remove temporary workaround which appears to be redundant now. 2017-08-10 23:22:56 +08:00
Yao Wei Tjong 姚伟忠
8cd8569243 Clean the generated PCH when 'clean' built-in target is invoked. 2017-08-06 12:59:36 +08:00
Yao Wei Tjong 姚伟忠
ba66888068 Fix PCH generation for the Web/MODULE lib type. 2017-08-06 12:59:36 +08:00
Yao Wei Tjong 姚伟忠
d0a51addf7 Generate PCH deps file using a naming convention expected by Clion.
Fix #2047.
2017-08-06 12:59:36 +08:00
1vanK
8c11d7180c Fix mklink test when current path is not sources dir (for example when used cmake-gui) 2017-07-24 16:06:42 +03:00
Lasse Öörni
dd1582dc6f Merge branch 'webp' 2017-07-23 14:41:09 +03:00
Eugene Kozlov
32a3e1dd29 Enable multi-thread compilation in Visual Studio. Fixed #1407. 2017-07-23 11:39:52 +03:00
Lasse Öörni
aa47eb13ba Merge branch 'master' into webp 2017-07-22 13:36:51 +03:00
Yao Wei Tjong 姚伟忠
86a03ec62e For CI - remove old hacks in the build scripts. 2017-07-21 23:54:28 +08:00
Lasse Öörni
51e49e6f7d Default WebP on. 2017-07-20 22:26:14 +03:00
carnalis
3339e5012b Initial commit of WebP image support 2017-07-20 00:43:15 -04:00
Yao Wei Tjong 姚伟忠
ec84cfdfd1 Remove the usage of add_compiler_export_flags() deprecated function.
Fix #1945.
2017-07-13 23:17:09 +08:00
Yao Wei Tjong 姚伟忠
7fc9aa816a Make clean for MinGW/Android/Web platforms.
The rest of the platforms are already taken care of by this commit, however, only tested explicitly on Linux native, RPI, and ARM.
2017-07-09 21:58:33 +08:00
Yao Wei Tjong 姚伟忠
ace4a00fea Reinstate source group for VS and Xcode IDE.
The "resources being added into multiple groups" issue is not reproducible in Xcode IDE anymore, probably the more recent define_resources_dirs() macro has "properly" fixed it.
2017-07-07 23:31:42 +08:00
Yao Wei Tjong 姚伟忠
c7a0149dc9 Another sweep for tvOS conditional code branch. 2017-06-05 23:04:09 +08:00
Yao Wei Tjong 姚伟忠
75b8420a31 Initial work for porting Urho3D to AppleTV platform. 2017-06-05 23:04:09 +08:00
Yao Wei Tjong 姚伟忠
7ec6f94e06 Disable DCE for main module permanently. 2017-06-02 23:58:38 +08:00
Yao Wei Tjong 姚伟忠
e30de5eb5b Temporarily disable the DCE on main module to make it runnable. 2017-05-21 20:21:27 +08:00
Yao Wei Tjong 姚伟忠
3d39061627 Simplify the build option for sharing pak-loader script and data. 2017-05-21 20:21:27 +08:00
Yao Wei Tjong 姚伟忠
c935c7dc3f Glue main module and side module(s) together in final output. 2017-05-21 20:21:27 +08:00
Yao Wei Tjong 姚伟忠
363f68d36e When the search path is required, search it as rooted and not-rooted. 2017-05-18 22:40:17 +08:00
Huy Nguyen
71d7325335 Updated UrhoCommon.cmake to link against CoreFoundation & SystemConfiguration, which is needed by GetLoginName(). 2017-05-14 21:29:02 +07:00
Yao Wei Tjong 姚伟忠
380afddfba Move creation logic for resource checker back to setup_main_executable. 2017-05-03 22:06:25 +08:00
Yao Wei Tjong 姚伟忠
f0d5914d20 Use alternative install command to avoid relinking of targets.
[skip appveyor] [ci only: Web]
2017-04-16 23:18:46 +08:00
Yao Wei Tjong 姚伟忠
6b1250485f Rename to use the new Binaryen's trap mode setting.
Tested on Emscripten incoming SDK version 1.37.9.
2017-04-16 16:26:49 +08:00
Yao Wei Tjong 姚伟忠
db908c2be5 Add self-executable HTML shell-file hack.
This hack allows IDE to "run" the HTML output file for Web platform as if it is an executable. This hack only works on Unix-alike host system, sorry.
2017-04-16 16:26:49 +08:00
Yao Wei Tjong 姚伟忠
0e4060b61a Use no_weak_imports linker flag to ignore weak symbol during detection. 2017-04-13 19:35:23 +08:00
Yao Wei Tjong 姚伟忠
1544a1631b Skip try_compile test when the found lib does not the armv7 arch. 2017-04-13 19:35:23 +08:00
Yao Wei Tjong 姚伟忠
403f88da05 Fix Xcode complaining about same resources in multiple groups.
Tested on both Xcode and AppCode.
2017-04-09 23:35:31 +08:00
Yao Wei Tjong 姚伟忠
9daf887f10 Phasing out universal binary build for macOS platform.
Close #1895.
2017-04-09 00:04:41 +08:00
Yao Wei Tjong 姚伟忠
7ec1448c07 Minor clean up to avoid code duplication. 2017-04-07 22:12:13 +08:00
Yao Wei Tjong 姚伟忠
3ad02295c7 Prevent resource symlink creation when performing resource packaging.
Incidentally, the extra symlinks in the Web CI build has caused static site generation error since yesterday. So this should fix that as well.
2017-04-07 00:13:59 +08:00
Yao Wei Tjong 姚伟忠
35138fbc33 Prevent the same resource directory from being installed twice.
Using parent scope is not good enough when multiple targets referencing a same resource directory are not located inside a same parent scope.
Using internal cache fixes this.
2017-04-05 23:33:00 +08:00
Yao Wei Tjong 姚伟忠
b7ea0502a9 Minor convention fix on CMake build scripts. 2017-04-05 18:16:50 +08:00
Yao Wei Tjong 姚伟忠
f9fe5bc4c2 Remove old/unused options from define_source_files() macro. 2017-04-05 18:16:49 +08:00
Yao Wei Tjong 姚伟忠
2efbcd570c Rename "define_resource_files" macro to "define_resource_dirs".
Enhance it to take extra arguments for specifiying target-specific resource directories and other extra for Web platform support.
Close #809.
2017-04-05 18:16:36 +08:00
Yao Wei Tjong 姚伟忠
a24a4f8a4e For CI - fix MinGW AppVeyor CI to get the correct git version number. 2017-04-04 13:44:03 +08:00
Yao Wei Tjong 姚伟忠
a8dcfa2be9 Merge branch 'InverseKinematics' of https://github.com/TheComet93/Urho3D into TheComet93-InverseKinematics 2017-04-01 14:20:56 +08:00
Yao Wei Tjong 姚伟忠
1bd123ecfb Disable exception handling codegen for Emscripten DEBUG build config.
Urho3D library does not use C++ exceptions feature. Emscripten already disables exception handling by default for -O1 and above.
2017-03-27 23:15:16 +08:00
Yao Wei Tjong 姚伟忠
9d84ccffe4 Initial attempt to support MODULE library type for Web platform.
Disallow memory growth when using MODULE lib-type.
Move the resource defining and checking logic into their own macros.
2017-03-26 22:18:35 +08:00
Yao Wei Tjong 姚伟忠
5649e9b85b Fix Emscripten build on Windows host system.
[ci skip]
2017-03-23 21:54:34 +08:00
TheComet
cf30fb98c0 Adding IK library to Urho3D, enable/disable it with -DURHO3D_IK 2017-03-21 15:56:46 +01:00
Yao Wei Tjong 姚伟忠
4399c04d3a Add pre-js script to process request parameters as app's arguments.
Fix #1747. [ci only: Web]
2017-03-19 21:02:38 +08:00
Lasse Öörni
513f9592fa Prevent MSVC attempting to use the "strip" command when invoked through NMake in Release configuration. Closes #1851. 2017-03-10 13:45:33 +02:00
Yao Wei Tjong 姚伟忠
ff85c9522a Rename the module and toolchain names to follow new naming convention. 2017-03-06 22:12:27 +08:00
Yao Wei Tjong 姚伟忠
c9b45bf1f1 Allow generation of .js instead of .html as output for Web platform. 2017-03-05 08:46:37 +08:00
Yao Wei Tjong 姚伟忠
6eef852fe2 When targeting WASM, allow memory growth and code gen that could trap. 2017-03-05 08:46:33 +08:00
Yao Wei Tjong 姚伟忠
7102a25409 For CI - disable web run tests as they are not reliable on Travis. 2017-03-05 08:46:29 +08:00
Yao Wei Tjong 姚伟忠
d7eded9178 Add new build option to enable WASM support.
Remove redundant Emscripten build option for pre-generating the system libraries because newer Emscripten version has fixed the cache lock issue.
2017-03-05 08:46:29 +08:00
Yao Wei Tjong 姚伟忠
f1ac8a80e9 Minor refactor on CheckCompilerToolchain module. 2017-03-05 08:46:22 +08:00
Yao Wei Tjong 姚伟忠
0c88c99112 Allow possibility of building Urho3D without C++ exceptions feature.
Disallow Android build to turn off C++ RTTI feature.
2017-03-05 08:46:22 +08:00
Yao Wei Tjong 姚伟忠
2f8a80def4 Rewrite from scratch a new Android toolchain file.
The new toolchain file requires Android NDK r12b and above. Default to use 'arm-linux-androideabi-clang' toolchain and LLVM libc++ STL runtime.
Align all the compiler and linker flags according to new ndk-build configuration in Android NDK r12b, i.e. no more '-f[no-]strict-aliasing' and '-f[no-]omit-frame-pointer', but more stringent warnings check.
Improve over the old toolchain file where most of the options are now changeable after the initial configuration. The exceptions are ANDROID_NDK and ANDROID_TOOLCHAIN_NAME due to limitation of CMake.
Close #1441.
Other changes in this commit includes:
- Fix Android sample launcher app to support shared C++ STL runtime library.
- Remove temporary fix in FindUrho3D module as it is not required anymore with our new toolchain file.
- Fix Log::WriteRaw() method to pass the parameters correctly to __android_log_print() function.
- Fix enable_pch() macro to emit -fPIC compiler flags correctly based on target's POSITION_INDEPENDENT_CODE property.
- Fix linker flags for ld.bfd where it needs help to find the location of the rooted shared libraries. The flags are not required for ld.gold but they do no harm for gold linker.
- Enhance the CheckCompilerToolchain module to auto-detect if the NEON SIMD is enabled or not for Android build (based on the chosen ANDROID_ABI).
2017-03-05 08:45:40 +08:00
Yao Wei Tjong 姚伟忠
22542ec06d Adapt to newer CMake that identifies Clang on Apple as "AppleClang". 2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
06638436c0 Prevent *-PREFIX and *-SYSROOT changes after the initial configuration.
When in try_compile() mode, quickly obtain the previously cached values stored in the (inner scope) environment variables and bypass all the checks (which are already done when the toolchain file is being processed at the start of CMake run).
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
f7e2303cab Use "SmileyHack" to inject CMake vars to get the right output suffix.
This fixes known issues with output binary suffix in the custom emscripten.toolchain.cmake and FindUrho3D.cmake modules.
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
84ad86e79e Fix toolchain files to honor *-PREFIX and *-SYSROOT as build options.
Due to the CMake try_compile() limitation, initial build option values (i.e. not env-vars) were not visible to all the CMake checks during inital configuration, preventing the build option from functioning as expected.
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
98bdf13583 Enhance toolchain files to first check on suitable ccache symlink.
If a suitable symlink is found in the standard ccache symlink directory then skip creating fallback symlink in the build tree.
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
f32cbb72b0 Rename Urho3D-CMake-common.cmake module to UrhoCommon.cmake.
To be consistent with the other modules. Drop the '3D' simply because it sticks out in 'Urho3DCommon'.
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
ffd24cafa1 Take advantage of CMAKE_SYSROOT available in the newer CMake.
Use CMAKE_SYSROOT to manage the sysroot automatically when cross-compiling instead of adding the '--sysroot' flag manually everywhere. We only need to add it manually in places where CMake does not, like in our custom GCC/Clang response file for PCH.
Differentiate between setting up header search path for system headers and for application headers so that GCC/Clang may suppress compilation warnings from the former, if any.
2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
4fbe1ff134 Add custom command to automatically strip main target on Release build. 2017-03-05 08:45:39 +08:00
Yao Wei Tjong 姚伟忠
3b02eeb5eb For CI - suppress all the 3rd-party libraries' warnings.
Somehow after bumping up the CMake minimum version, CMake configures Xcode to work "better" with xcpretty that now the warnings are piping through the xcpretty's filter. Unfortunately when performing CI build, this is undesirable because not only now the log size is swelling, the build is slower too.
2017-03-05 08:45:38 +08:00
Yao Wei Tjong 姚伟忠
73c97d9f64 Only add defines at the scope they are actually required. 2017-03-05 08:45:38 +08:00
Yao Wei Tjong 姚伟忠
3d9eb3f694 Bake CC and CXX env-vars in case they are short lived in init process. 2017-03-05 08:45:38 +08:00
Yao Wei Tjong 姚伟忠
bbbbdb0108 Check native compiler toolchain is available before proceeding.
Some cross-compiling build tree configuration needs native compiler toolchain for host tool building via ExternalProject_Add(). This additional check ensures the native compiler toolchain is available up front before the build tree is even generated. Close #1300.
2017-03-05 08:45:21 +08:00
Yao Wei Tjong 姚伟忠
9f19d51c08 Remove older constructs that have been earmarked previously. 2017-03-05 08:34:41 +08:00
Yao Wei Tjong 姚伟忠
f38487f14e Add new option to control how to share resources on web platform.
Related to #1762.
2017-02-23 07:46:41 +08:00
Yao Wei Tjong 姚伟忠
f77939e7ae For CI - separate MinGW build tree from VS build tree.
Test [cache clear].
2017-02-10 08:08:03 +08:00
Yao Wei Tjong 姚伟忠
c0f6b0dac7 Configure MinGW to use -O2 instead of -O3 for Release build config.
For some reason CMake/MinGW generator uses -O3 for newer MinGW versions. Explicitly set it to -O2 to prevent crashes on 32-bit mode.
Fix #1765.
2017-02-09 01:51:08 +08:00
Yao Wei Tjong 姚伟忠
68d8681c2b Always use export header for auto-discovering the build options.
Fix #1796.
2017-02-05 21:01:21 +08:00