summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/detect.py
Commit message (Collapse)AuthorAgeFilesLines
* Misc build system fixesAaron Franke2021-12-101-1/+1
|
* Add support for PowerPC familyDaniel Kolesa2021-11-011-2/+10
|
* Use OpenGL 3.3 core profile instead of compatibility profileClay John2021-10-311-1/+1
| | | | | | | | | | - Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
* Add GLES2 2D renderer + Linux display managerlawnjelly2021-10-301-2/+2
| | | | | | | | | First implementation with Linux display manager. - Add single-threaded mode for EditorResourcePreview (needed for OpenGL). Co-authored-by: clayjohn <claynjohn@gmail.com> Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
* Add support for the RISC-V architectureAaron Franke2021-10-221-0/+7
| | | | Supports RV64GC (RISC-V 64-bit with general-purpose and compressed-instruction extensions)
* Merge pull request #53833 from akien-mga/remove-webm-supportRémi Verschelde2021-10-151-7/+0
|\
| * Remove WebM support (and deps libvpx and opus)Rémi Verschelde2021-10-151-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've had many issues with WebM support and specifically the libvpx library over the years, mostly due to its poor integration in Godot's buildsystem, but without anyone really interested in improving this state. With the new GDExtensions in Godot 4.0, we intend to move video decoding to first-party extensions, and this would likely be done using something like libvlc to expose more codecs. Removing the `webm` module means we can remove libsimplewebm, libvpx and opus, which we were only used for that purpose. Both libvpx and opus were fairly complex pieces of the buildsystem, so this is a nice cleanup. This also removes the compile-time dependency on `yasm`. Fixes lots of compilation or non-working WebM issues which will be linked in the PR.
* | SCons: Set `DEBUG_ENABLED` and `DEV_ENABLED` in SConstructRémi Verschelde2021-10-151-3/+0
|/ | | | | They're the same for all platforms so they don't need to be repeated in all platform definitions.
* SCons: Add `DEV_ENABLED` defines for `target=debug` buildsRémi Verschelde2021-10-141-0/+1
| | | | | | | | | | | This will allow adding developer checks which will be fully compiled out in user builds, unlike `DEBUG_ENABLED` which is included in debug tempates and the editor builds. This define is not used yet, but we'll soon add code that uses it, and change some existing `DEBUG_ENABLED` checks to be performed only in dev builds. Related to godotengine/godot-proposals#3371.
* Merge pull request #52282 from Calinou/scons-improve-linuxbsd-build-messagesRémi Verschelde2021-09-151-23/+21
|\ | | | | Improve messages when compiling for Linux/*BSD
| * Improve messages when compiling for Linux/*BSDHugo Locurcio2021-08-311-23/+21
| | | | | | | | | | | | | | - Don't display messages when enabling PulseAudio/ALSA/D-Bus/udev as these become noisy in incremental builds. - Improve warning and error messages to be more descriptive and consistent.
* | Re-enable building position-independent executables on Linux/*BSDHugo Locurcio2021-09-151-5/+0
|/ | | | | | | | | | This provides better security at the cost of having misleading binary icons on some file managers. Now that recent Linux distributions no longer allow executing binaries by double-clicking them in a file manager (even if the binary is set to be executable), the usability cost of PIE is lowered. You have to use a terminal or install a `.desktop` file nowadays.
* Use "volk" instead of statically linked Vulkan loader.bruvzg2021-08-121-1/+1
|
* Add "Keep screen on" feature to `DisplayServerX11`Niklas Higi2021-06-201-0/+9
|
* LinuxBSD now compiles without vulkan/x11.Fabio Alessandrelli2021-06-011-9/+18
|
* Make all file access 64-bit (uint64_t)Pedro J. Estébanez2021-05-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the types of a big number of variables. General rules: - Using `uint64_t` in general. We also considered `int64_t` but eventually settled on keeping it unsigned, which is also closer to what one would expect with `size_t`/`off_t`. - We only keep `int64_t` for `seek_end` (takes a negative offset from the end) and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means we only need to guard against passing negative values in `core_bind.cpp`. - Using `uint32_t` integers for concepts not needing such a huge range, like pages, blocks, etc. In addition: - Improve usage of integer types in some related places; namely, `DirAccess`, core binds. Note: - On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for big files on 32-bit Windows builds made with that toolchain. We might add a workaround. Fixes #44363. Fixes godotengine/godot-proposals#400. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* Port changes to the "raycast" module build files from 3.xjfons2021-05-041-0/+4
|
* Linux: Remove use_static_cpp override on x86_32Rémi Verschelde2021-04-261-4/+1
| | | | | | | After further testing it seems to work fine now when building binaries with GCC 5 on Ubuntu 16.04 (previously we were using GCC 9 on Ubuntu 14.04). Follow-up to #45629.
* Fix macOS build with all sanitizers enabled.bruvzg2021-04-161-1/+1
|
* Add more sanitizer flags to shows more bugsRafał Mikrut2021-04-151-7/+21
|
* Allow to not optimize release buildRafał Mikrut2021-03-141-2/+2
|
* add msan sanitizer option for linus/bsd, lsan option for osxJordan Schidlowsky2021-03-021-1/+6
|
* Allow static linking with libatomic using clangHein-Pieter van Braam-Stewart2021-02-231-1/+6
| | | | | | | When using use_static_cpp we want to statically link with atomic as well to make sure we don't incur any new runtime dependencies. Scons doesn't quite support this so we do this little trick.
* Use -latomic when linking whe using clang on LinuxHein-Pieter van Braam-Stewart2021-02-201-0/+1
| | | | | | | | According to the LLVM documentation when using GNU's libstdc++ clang will not automatically link with -latomic. This is necessary since we merged c++11 atomics support. This fixes linking using Clang on Linux
* Dynamically load libudev.so.1 on Linux if `udev=yes`Rémi Verschelde2021-02-171-2/+2
| | | | | | | | | | | | | | | | | | | This makes it possibly to run Linux binaries compiled with udev support on Linux systems which do not provide udev (typically systemd-less distros). If udev is missing, we fall back to parsing `/dev/input` like when compiled without udev support (`udev=no`). Also adding some verbose debug statements to know which method we're using when debugging Linux joypad issues. The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using https://github.com/hpvb/dynload-wrapper: ``` ./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \ --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c ```
* Dynamically load libpulse.so.0 and libasound.so.1 on LinuxHein-Pieter van Braam-Stewart2021-02-161-3/+2
| | | | | | | | | | | | By generating stubs using https://github.com/hpvb/dynload-wrapper we can dynamically load libpulse and libasound on systems where it is available. Both are still a build-time requirement but no longer a run-time dependency. For maintenance purposes the wrappers should not need to be re-generated unless we want to bump pulse or asound to an incompatible version. It is unlikely we will want to do this any time soon. This closes #20978
* SCons: Fix debug_symbols tests after switch to BoolVariableRémi Verschelde2021-02-081-2/+2
| | | | | | Bug introduced in #45679. Fixes part of #45816.
* SCons: Add `production=yes` option to use production defaultsRémi Verschelde2021-02-031-1/+1
| | | | | | | | | | | | | | | | | | | This is meant for users making custom builds to match the options used on optimized, official builds. This enables, on the platforms which support them: - `use_static_cpp=yes` (portable binaries for Linux and Windows) - `use_lto=yes` (link time optimizations - note: requires a lot of RAM!) - `debug_symbols=no` (no debug symbols, smaller binaries) Also abort when using MSVC with `production=yes`, as: - It cannot optimize the GDScript VM like GCC or Clang do, leading to significant performance drops. - Its LTO support is unreliable, at least used to trigger crashes last we tried it extensively. All options can still be overridden if specified, and the `dev=yes` option was changed to also support overrides.
* Merge pull request #45630 from akien-mga/linux-enable-udevRémi Verschelde2021-02-011-1/+1
|\ | | | | Linux: Enable udev support by default
| * Linux: Enable udev support by defaultRémi Verschelde2021-02-011-1/+1
| | | | | | | | | | | | | | | | | | This has been enabled for years in official binaries, and users making custom builds may end up not enabling it unknowingly, so it's best if we default to the same as what official builds do. The original reason for having it opt-in was likely the addition of a dependency on libudev, but that should be fairly ubiquitous by now.
* | Linux: Build with use_static_cpp=yes by default for x86_64Rémi Verschelde2021-02-011-2/+5
|/ | | | | | | | This enables `-static-libgcc -static-libstdc++` which help make custom Linux builds more portable (official builds have been using this option for years). For some obscure reason Ubuntu 18.04 i386 crashes when using the option for i386 builds, so let's play it safe and enable for x86_64 only for now.
* SCons: Add only selected platform's opts to envRémi Verschelde2020-12-161-3/+0
| | | | | | | | | | | Otherwise we can get situations where platform-specific opts with the same name can override each other depending on the order at which platforms are parsed, as was the case with `use_static_cpp` in Linux/Windows. Fixes #44304. This also has the added benefit that the `scons --help` output will now only include the options which are relevant for the selected (or detected) platform.
* [Complex Text Layouts] Add third-party TextServer dependencies (ICU, ↵bruvzg2020-11-261-1/+18
| | | | HarfBuzz, Graphite).
* SCons: Do not define TYPED_METHOD_BIND on Linux/clangRémi Verschelde2020-11-251-1/+0
| | | | It's now only needed for MSVC.
* SCons: Remove unnecessary $LINK overridesRémi Verschelde2020-11-191-1/+0
| | | | | | | | | | As of SCons 4.0.1, the default value for $LINK is $SMARTLINK, which itself is a function that will use $CXX as linker for C++: https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L327-L328 https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L54-L76 So we don't need to manually specify the same value as $CXX for $LINK.
* Remove `debug_symbols=full` in favor of `debug_symbols=yes`Hugo Locurcio2020-11-091-5/+1
| | | | | | | | `debug_symbols=yes` will now behave like `debug_symbols=full` did before. The difference in compressed file sizes is not that large, which means there isn't much point in having two different values. This helps make the buildsystem easier to understand.
* Add window click-through support.bruvzg2020-09-171-0/+6
|
* SCons: Remove unused DEBUG_MEMORY_ENABLED defineRémi Verschelde2020-07-231-1/+1
| | | | | | | Its last use was removed in Godot 3.0, so it no longer makes sense to define. Also removed `D3D_DEBUG_INFO` for Windows as it's likely a left over from a long time ago pre-opensourcing when Godot had some form of Direct3D 9 support?
* Update to bullet master (2.90)PouleyKetchoupp2020-04-271-3/+5
|
* SCons: Format buildsystem files with psf/blackRémi Verschelde2020-03-301-185/+194
| | | | | | | | | | | | | | | | | | | | | Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
* Effective DisplayServer separation, rename X11 -> LinuxBSDJuan Linietsky2020-03-261-0/+368