summaryrefslogtreecommitdiffstats
path: root/platform/x11/detect.py
Commit message (Collapse)AuthorAgeFilesLines
* Effective DisplayServer separation, rename X11 -> LinuxBSDJuan Linietsky2020-03-261-368/+0
|
* assimp: Clean and document buildsystem, prepare for unbundlingRémi Verschelde2020-03-061-1/+4
| | | | | | | | | | - Improve the SCsub to allow unbundling and remove unnecessary code. - Move files around to match upstream source. - Re-sync with upstream commit 308db73d0b3c2d1870cd3e465eaa283692a4cf23 to ensure we don't have local modifications. - Doesn't actually build against current version 5.0.1 due to the lack of the new ArmaturePopulate API that Gordon authored. We'll have to wait for a public release with that API (5.1?) to enable unbundling.
* SCons: Expand env variables to check compiler versionRémi Verschelde2020-03-041-1/+1
| | | | | | | | | Scons' `Environment.subst()` does that, and was already used in the other place where we query an env variable (`env["LINK"]` in x11 code). Fixes `3.2` iOS build after cherry-pick of #36559 (previously it only ran for GCC code, not iOS's Clang), and the same issue would likely affect `master` if iOS builds were enabled right now.
* Merge pull request #36572 from qarmin/coverageRémi Verschelde2020-02-271-0/+5
|\ | | | | Added code coverage support to Godot
| * Added code coverate support to GodotRafał Mikrut2020-02-261-0/+5
| |
* | SCons: Fix get_compiler_version() to return intsRémi Verschelde2020-02-261-12/+4
|/ | | | | | Otherwise comparisons would fail for compiler versions above 10. Also simplified code somewhat to avoid using subprocess too much needlessly.
* glslang: Disable warnings and allow unbundlingRémi Verschelde2020-02-111-0/+3
|
* SCons: Streamline Vulkan buildsystem + fixupsRémi Verschelde2020-02-111-3/+2
| | | | | | | | | | | - Renamed option to `builtin_vulkan`, since that's the name of the library and if we were to add new components, we'd likely use that same option. - Merge `vulkan_loader/SCsub` in `vulkan/SCsub`. - Accordingly, don't use built-in Vulkan headers when not building against the built-in loader library. - Drop Vulkan registry which we don't appear to need currently. - Style and permission fixes.
* Add runtime GLES2 / Vulkan context selection.bruvzg2020-02-111-8/+7
|
* Add static Vulkan loader.bruvzg2020-02-111-3/+11
| | | | | Initial Vulkan support for Windows. Initial Vulkan support for macOS.
* Initial work on Vulkan:Juan Linietsky2020-02-111-1/+3
| | | | | | | | -Added VulkanContext -Added an X11 implementation -Added a rendering device abstraction -added a Vulkan rendering device abstraction -Engine does not work, only shows Godot logo (run it from bin/)
* Fix error with linkers other than GNU ldPedro J. Estébanez2020-01-221-4/+8
|
* Merge pull request #35209 from RandomShaper/fix_pck_embed_linuxRémi Verschelde2020-01-161-3/+9
|\ | | | | Fix error exporting to X11 with embedded PCK
| * Fix error exporting to X11 with embedded PCKPedro J. Estébanez2020-01-161-3/+9
| | | | | | | | Fixes #32513.
* | Image: Include S3TC compression via Squish in non-tools buildRémi Verschelde2020-01-131-1/+1
|/ | | | | | | We already build Squish in templates build for S3TC decompression, so we can as well expose the compression feature. Fixes #25640.
* Added Thread Sanitizerqarmin2019-08-071-1/+6
|
* Merge pull request #24086 from RandomShaper/bundle-pck-to-executableRémi Verschelde2019-07-051-0/+3
|\ | | | | Enhance game export
| * Add embedded PCK option to PC platformsPedro J. Estébanez2019-07-031-0/+3
| | | | | | | | | | | | The basic point is as in 2.1 (appending the PCK into the executable), but this implementation also patches a dedicated section in the ELF/PE executable so that it matches the appended data perfectly. The usage of integer types is simplified in existing code; namely, using plain `int` for small quantities.
* | Remove libwebsocket. No longer used, yay!Fabio Alessandrelli2019-07-041-2/+2
| |
* | SCons: Use CPPDEFINES instead of CPPFLAGS for pre-processor definesRémi Verschelde2019-07-031-9/+9
|/ | | | | | | | It's the recommended way to set those, and is more portable (automatically prepends -D for GCC/Clang and /D for MSVC). We still use CPPFLAGS for some pre-processor flags which are not defines.
* SCons: Default to builtin libpng/freetype on LinuxRémi Verschelde2019-06-231-5/+1
| | | | | | | | | | | | | The rationale for keeping those shared by default is that they're typical dependencies found on any Linux system, and it saves compilation time and binary size to link their dynamically. But since official builds default to all-builtin, and Debian/Ubuntu still don't have libpng16 (which we now require) readily available on all their supported releases, it's simpler to bundle all the things. This does not change the fact that those dependencies *can* be unbundled on Linux, it's only the default option changing.
* Png driver reworked to use libpng 1.6 simplified APIIbrahn Sahir2019-06-191-1/+1
| | | | | | | | | | Wrapped libpng usage in a pair of functions under PNGDriverCommon, which convert between Godot Image and png data. Switched to libpng 1.6 simplified API for ease of maintenance. Implemented ImageLoaderPNG and ResourceSaverPNG in terms of PNGDriverCommon functions. Travis, switched to builtin libpng (thus builtin freetype and zlib also) so we can build on Xenial.
* bullet: Sync with current upstream master branchRémi Verschelde2019-06-111-3/+3
| | | | | | | | | | | This updates our local copy to commit 5ec8339b6fc491e3f09a34a4516e82787f053fcc. We need a recent master commit for some new features that we use in Godot (see #25543 and #28909). To avoid warnings generated by Bullet headers included in our own module, we include those headers with -isystem on GCC and Clang. Fixes #29503.
* SCons: Always use env.Prepend for CPPPATHRémi Verschelde2019-04-301-2/+2
| | | | | | 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).
* fix builds made with Clang on some Linux distrosMichele Valente2019-04-261-1/+7
| | | | | | This is the same as #23542 (Fix binaries incorrectly detected as shared libraries on some linux distros) but for Clang. It should be fine with Clang 4 or higher.
* Merge pull request #28402 from Valentactive/add-thinlto-support-x11Rémi Verschelde2019-04-251-3/+12
|\ | | | | Add option to use ThinLTO
| * add option to use ThinLTOMichele Valente2019-04-251-3/+12
| | | | | | | | | | | | | | | | This adds ThinLTO support when using Clang and the LLD Linker, it's turned off by default. For now only support for Linux added as ThinLTO support on other platforms may still be buggy.
* | SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde2019-04-241-5/+7
|/ | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge pull request #27208 from Calinou/add-lld-linkerHein-Pieter van Braam2019-04-231-1/+9
|\ | | | | Add support for linking using LLD on X11
| * Add support for linking using LLD on X11Hugo Locurcio2019-03-181-1/+9
| | | | | | | | | | | | | | LLD is often faster than GNU ld and gold, resulting in a better development experience. This closes #15364.
* | Remove unused importsHendrikto2019-04-061-1/+1
| |
* | SCons: add `methods.using_clang` to check used compilerRémi Verschelde2019-04-051-2/+2
| | | | | | | | | | Also rename `use_gcc` to `using_gcc` to make it clear that it returns a config but does not alter it.
* | SCons: Fix python3 compat for builtin_bullet=noRémi Verschelde2019-04-031-1/+1
| |
* | Revert accidental commitsPedro J. Estébanez2019-03-201-1/+1
| | | | | | | | | | This reverts commit fb37284c027b494ed3ec21124001fcb729f42cc4. This reverts commit 4db0f51b9aa76cfc7649787fe1970af606ce8dab.
* | Create class for shared memory blocks [wip]Pedro J. Estébanez2019-03-201-1/+1
|/
* SCons: Reduce spam from x11:can_buildRémi Verschelde2019-03-021-2/+0
| | | | | When cross-compiling for non-X11 on Linux, it used to be quite spammy. Now it will only print errors if you miss more than just pkg-config and x11.
* Come up with use_gcc.marxin2019-02-231-5/+6
| | | | Add new method. Fix wrong version condition for -fpie.
* Add -Wshadow=local to warnings and fix reported issues.marxin2019-02-201-13/+6
| | | | Fixes #25316.
* Rename sanitizer option names.marxin2019-01-211-7/+15
| | | | | | | Make the sanitizer names more explicit (use_ubsan, use_asan, use_lsan). Comment has been adjusted to include GCC as supported compiler for these and exclude -fno-omit-frame-pointer option (should not cause any problems).
* Don't use -ffast-math or other unsafe math optimizationsHein-Pieter van Braam2019-01-091-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use XInput2 RawMotion to generate MouseMotion eventsCosmic Chip Socket2018-12-141-5/+6
| | | | | | | | | | | | | | | | | | | | The current system for capturing the mouse and generating motion events on X11 has issues with inaccurate and lopsided input. This is because both XQueryPointer and XWarpPointer work in terms of integer coordinates when the underlying X11 input driver may be tracking the mouse using subpixel coordinates. When warping the pointer, the fractional part of the pointer position is discarded. To work around this issue, the fix uses raw motion events from XInput 2. These events report relative motion and are not affected by pointer warping. Additionally, this means Godot is able to detect motion at a higher resolution under X11. Because this is raw mouse input, it is not affected by the user's pointer speed and acceleration settings. This is the same system as SDL2 uses for its relative motion. Multitouch input on X requires XInput 2.2. Raw motion events require XInput 2.0. Since 2.0 is old enough, this is now the minimum requirement to use Godot on X.
* Fix gcc version check when running scons in python 3.Ibrahn Sahir2018-11-141-0/+2
|
* Fix compile recent compile issues with gcc 5.5Marcelo Fernandez2018-11-121-2/+2
|
* Fix binaries incorrectly detected as shared libraries on some linux distrosMarcelo Fernandez2018-11-071-0/+12
|
* SCons: Remove avoidable defines from main env's CPPPATHRémi Verschelde2018-10-011-2/+3
| | | | | | Also finally move freetype to its own env and disable warnings for it. Still needs some work to fix the awkward situation of the freetype and svg modules used in scene/ and editor/ respectively.
* SCons: Fix checks for clang in env['CXX']Rémi Verschelde2018-09-251-3/+3
| | | | They would match the whole path instead of only the filename.
* Merge pull request #20154 from marcelofg55/midi_driverRémi Verschelde2018-07-251-1/+1
|\ | | | | Added a new MIDIDriver class
| * Added a new MIDIDriver classMarcelo Fernandez2018-07-211-1/+1
| |
* | SCons: Add "execinfo" option to force linking libexecinfoRémi Verschelde2018-07-221-0/+4
| | | | | | | | Fixes #20035.
* | -Fix disable_3d flagJuan Linietsky2018-07-211-2/+10
|/ | | | -Add extra flag optimize=[size,speed] to be able to prioritize size