summaryrefslogtreecommitdiff
path: root/platform/server/detect.py
AgeCommit message (Collapse)Author
2019-04-30SCons: Always use env.Prepend for CPPPATHRémi Verschelde
Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
2019-04-24SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde
Many contributors (me included) did not fully understand what CCFLAGS, CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them in the way they are intended to be. As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html - CCFLAGS: General options that are passed to the C and C++ compilers. - CFLAGS: General options that are passed to the C compiler (C only; not C++). - CXXFLAGS: General options that are passed to the C++ compiler. By default, this includes the value of $CCFLAGS, so that setting $CCFLAGS affects both C and C++ compilation. - CPPFLAGS: User-specified C preprocessor options. These will be included in any command that uses the C preprocessor, including not just compilation of C and C++ source files [...], but also [...] Fortran [...] and [...] assembly language source file[s]. TL;DR: Compiler options go to CCFLAGS, unless they must be restricted to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to CPPFLAGS.
2019-04-05SCons: add `methods.using_clang` to check used compilerRémi Verschelde
Also rename `use_gcc` to `using_gcc` to make it clear that it returns a config but does not alter it.
2019-04-03SCons: Fix python3 compat for builtin_bullet=noRémi Verschelde
2019-03-05Update the server platform's `detect.py` to match x11'sHugo Locurcio
This adds support for LTO, UBSAN/ASAN/LSAN, debugging symbols options and `optimize=size` in the `server` platform.
2019-01-09Don't use -ffast-math or other unsafe math optimizationsHein-Pieter van Braam
Godot supports many different compilers and for production releases we have to support 3 currently: GCC8, Clang6, and MSVC2017. These compilers all do slightly different things with -ffast-math and it is causing issues now. See #24841, #24540, #10758, #10070. And probably other complaints about physics differences between release and release_debug builds. I've done some performance comparisons on Linux x86_64. All tests are ran 20 times. Bunnymark: (higher is better) (bunnies) min max stdev average fast-math 7332 7597 71 7432 this pr 7379 7779 108 7621 (102%) FPBench (gdscript port http://fpbench.org/) (lower is better) (ms) fast-math 15441 16127 192 15764 this pr 15671 16855 326 16001 (99%) Float_add (adding floats in a tight loop) (lower is better) (sec) fast-math 5.49 5.78 0.07 5.65 this pr 5.65 5.90 0.06 5.76 (98%) Float_div (dividing floats in a tight loop) (lower is better) (sec) fast-math 11.70 12.36 0.18 11.99 this pr 11.92 12.32 0.12 12.12 (99%) Float_mul (multiplying floats in a tight loop) (lower is better) (sec) fast-math 11.72 12.17 0.12 11.93 this pr 12.01 12.62 0.17 12.26 (97%) I have also looked at FPS numbers for tps-demo, 3d platformer, 2d platformer, and sponza and could not find any measurable difference. I believe that given the issues and oft-reported (physics) glitches on release builds I believe that the couple of percent of tight-loop floating point performance regression is well worth it. This fixes #24540 and fixes #24841
2018-10-30Allow the server platform to build on linux again.Ibrahn Sahir
Fixed a logic error in platform/server/detect.py that prevented building the server platform on linux.
2018-10-29Server platform works on OS X tooMarcelo Fernandez
2018-09-25Server platform builds (dummy) mobile_vr module.Fabio Alessandrelli
Protect GL functions in mobile_vr with ifdefs.
2018-09-25SCons: Fix checks for clang in env['CXX']Rémi Verschelde
They would match the whole path instead of only the filename.
2018-06-07SCons: Allow unbundling libwebsockets and miniupnpcRémi Verschelde
2018-03-04SCons: Fix linking system pcre2 on server platformRémi Verschelde
Fixes #17245.
2018-03-01Fix server build on FreeBSDFabio Alessandrelli
2018-02-22server: Add support for statically linking libgcc and libstdc++Rémi Verschelde
2018-02-15Fixes to OS_Server and DummyRasterizer to match new signaturesFabio Alessandrelli
2018-02-15server platform now compiles and run on linux.Fabio Alessandrelli
Seems to also be able to do exports of some demos I tried.
2018-02-14Deleting OpenSSL module and libraryFabio Alessandrelli
2018-01-26Bullet: allow unbundling only if > 2.87Rémi Verschelde
Looks like we are using cutting edge methods which are not even if the current stable 2.87.
2018-01-13SCons: Allow unbundling bullet on Linux (only 2.87+)Rémi Verschelde
2018-01-05SCons: Fix usage of LD when we meant LINKRémi Verschelde
Also made LINK and CXXFLAGS configurable as command line options. Note that LINK currently expects the *compiler* that will be used for linking and will call its configured linker behind the scenes (so g++, clang++, etc., not ld.gold). See #15364 for details.
2017-10-17SCons: Disable server platform as it does not buildRémi Verschelde
See #8361. [ci skip]
2017-09-25Use BoolVariable in platform-specific options.Elliott Sales de Andrade
2017-09-25Use BoolVariable for third-party options.Elliott Sales de Andrade
2017-09-25Use BoolVariable in target/component/advanced options.Elliott Sales de Andrade
2017-09-24Merge pull request #11527 from QuLogic/system-zstdRémi Verschelde
Enable building against system zstd.
2017-09-24Add support for OpenSSL 1.1.0.Elliott Sales de Andrade
This release hides many struct members which provides easier forward compatibility but is a break from previous releases. A few small macros provide compatibility between both 1.1.0 and 1.0.x. Fixes #8624.
2017-09-23Enable building against system zstd.Elliott Sales de Andrade
2017-07-01Buildsystem: Improve detect.py readability and fix issuesRémi Verschelde
Tried to organize the configure(env) calls in sections, using the same order for all platforms whenever possible. Apart from cosmetic changes, the following issues were fixed: - Android: cleanup linkage, remove GLESv1_CM and GLESv2 - iPhone: Remove obsolete "ios_gles22_override" option - OSX: * Fix bits detection (default to 64) and remove obsolete "force_64_bits" option (closes #9449) * Make "fat" bits argument explicit - Server: sync with X11 - Windows: clean up old DirectX 9 stuff - X11: * Do not require system OpenSSL for building (closes #9443) * Fix typo'ed use_leak_sanitizer option * Fix .llvm suffix overriding custom extra_suffix
2017-03-26SCons: Add option to toggle warnings (on by default)Rémi Verschelde
All the warnings are factored out of the platform-specific files and moved to SConstruct. Will have to check that it does not introduce regressions on some platforms/compilers. (cherry picked from commit 31107daa1a41fe9ab3c7c1868479e78e16848333)
2016-11-19png: Allow building shared freetype with bundled libpngRémi Verschelde
This was the behaviour when building Godot 2.1, which allows to build against Ubuntu 12.04 and its freetype that links old libpng12, while still bundling libpng16.
2016-11-19Revert "libpng: Fix erroneously linking against libpng12 on old distros"Rémi Verschelde
This reverts commits 5fa1bb331ad9be31dbfc752c7d19ccf7caeb8fa and ec4be71fade1ee5c6171e323d09197f3bf528499. Looks like Debian/Ubuntu are not even shipping libpng16 nowadays in their stable releases, we'll have to go back to statically linking our own libpng16 to wait for them to stop being 5 years behind everybody.
2016-11-19libpng: Same fix as previous commit for server platformRémi Verschelde
2016-11-03server: Allow building against system librariesRémi Verschelde
2016-11-01style: Fix PEP8 blank lines issues in Python filesRémi Verschelde
Done with `autopep8 --select=E3,W3`, fixes: - E301 - Add missing blank line. - E302 - Add missing 2 blank lines. - E303 - Remove extra blank lines. - E304 - Remove blank line following function decorator. - E309 - Add missing blank line. - W391 - Remove trailing blank lines.
2016-11-01style: Fix PEP8 whitespace issues in Python filesRémi Verschelde
Done with `autopep8 --select=E2,W2`, fixes: - E201 - Remove extraneous whitespace. - E202 - Remove extraneous whitespace. - E203 - Remove extraneous whitespace. - E211 - Remove extraneous whitespace. - E221 - Fix extraneous whitespace around keywords. - E222 - Fix extraneous whitespace around keywords. - E223 - Fix extraneous whitespace around keywords. - E224 - Remove extraneous whitespace around operator. - E225 - Fix missing whitespace around operator. - E226 - Fix missing whitespace around operator. - E227 - Fix missing whitespace around operator. - E228 - Fix missing whitespace around operator. - E231 - Add missing whitespace. - E231 - Fix various deprecated code (via lib2to3). - E241 - Fix extraneous whitespace around keywords. - E242 - Remove extraneous whitespace around operator. - E251 - Remove whitespace around parameter '=' sign. - E261 - Fix spacing after comment hash. - E262 - Fix spacing after comment hash. - E265 - Format block comments. - E271 - Fix extraneous whitespace around keywords. - E272 - Fix extraneous whitespace around keywords. - E273 - Fix extraneous whitespace around keywords. - E274 - Fix extraneous whitespace around keywords. - W291 - Remove trailing whitespace. - W293 - Remove trailing whitespace.
2016-11-01style: Start applying PEP8 to Python files, indentation issuesRémi Verschelde
Done with `autopep8 --select=E1`, fixes: - E101 - Reindent all lines. - E112 - Fix under-indented comments. - E113 - Fix over-indented comments. - E115 - Fix under-indented comments. - E116 - Fix over-indented comments. - E121 - Fix a badly indented line. - E122 - Fix a badly indented line. - E123 - Fix a badly indented line. - E124 - Fix a badly indented line. - E125 - Fix indentation undistinguish from the next logical line. - E126 - Fix a badly indented line. - E127 - Fix a badly indented line. - E128 - Fix a badly indented line. - E129 - Fix a badly indented line.
2016-10-17SCons: Use colored output if available, change "colored"->"verbose"Błażej Szczygieł
2016-10-15zlib: Split thirdparty files, simplify scons optionRémi Verschelde
2016-10-15glew: Split thirdparty files and isolate envRémi Verschelde
Not fully happy about the way this one interacts with the various platforms. Maybe the platform_config.h should be generated by the SCsub instead of passing a define just to know where is the header.
2016-04-02Remove trailing spacesRémi Verschelde
2016-02-25theora on server buildAriel Manzur
2015-01-12SCons: colored compilationhurikhan
2014-10-07Build System ChangesJuan Linietsky
-=-=-=-=-=-=-=-=-=-= Build System: -Big clean up of SCons, changed how builds are done to a much cleaner method (check the Github Wiki for instructions). -Deactivated BlackBerry10 (sorry), if no mantainer found (or BlackBerry does not send us a Passort ;), platform will be removed as we have no longer devices to test. Engine: -Removed deprecated object and scene format (was in there just for compatibility, not in use since a long time). -Added ability to open scenes even if a node type was removed (will try to guess the closest type). -Removed deprecated node types.
2014-09-153D Physics Rework, Other StuffJuan Linietsky
-=-=-=-=-=-=-=-=-=-=-=-=-=- 3D Physics: -Fixed "Bounce" parameter in 3D -Fixed bug affecting Area (sometims it would not detect properly) -Vehicle Body has seen heavy work -Added Query API for doing space queries in 3D. Needs some docs though. -Added JOINTS! Adapted Bullet Joints: and created easy gizmos for setting them up: -PinJoint -HingeJoint (with motor) -SliderJoint -ConeTwistJoint -Generic6DOFJoint -Added OBJECT PICKING! based on the new query API. Any physics object now (Area or Body) has the following signals and virtual functions: -input_event (mouse or multitouch input over the body) -mouse_enter (mouse entered the body area) -mouse_exit (mouse exited body area) For Area it needs to be activated manually, as it isn't by default (ray goes thru). Other: -Begun working on Windows 8 (RT) port. Compiles but does not work yet. -Added TheoraPlayer library for improved to-texture and portable video support. -Fixed a few bugs in the renderer, collada importer, collada exporter, etc.
2014-02-09GODOT IS OPEN SOURCEJuan Linietsky