Commit Graph

57 Commits

Author SHA1 Message Date
Rémi Verschelde
d111a460b3 Linux: Add support for arm64 and arm32 export templates
This is done in a hacky way, mostly to keep it simple and avoid having
to do a refactoring of the `EditorExportPlatform` interface.

Only Windows and Linux use `EditorExportPlatformPC`, and thus to
handle the new architectures for Linux, we simply do a few checks here
and there with a couple new methods to register the export template
names for Linux arm64 and arm32.

For Godot 4.0, we did refactor everything to allow exporting binaries
for different architectures cleanly. For 3.6, which is likely the last
feature release for the 3.x branch, I tend to cut corners as these
improvements will be shorter lived and thus new tech debt isn't as big
a concern.
2024-02-08 15:01:00 +01:00
98912a89e8 File copyright header updates pt9. 2023-12-18 00:25:33 +01:00
88e9ad04f2 Moved back the servers and resources from core. 2023-12-10 23:11:07 +01:00
238bf1b331 Moved the RenderingServer to core. 2023-12-10 19:04:24 +01:00
1877ecd379 Fix warning. 2023-09-10 09:59:50 +02:00
Riteo
913c3164b5 Build JoypadLinux sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.

(cherry picked from commit 51dfdfab967234f0fa9939bd7158cc96a9ec3547)
2023-08-30 11:13:10 +02:00
Rafał Mikrut
baa1442c58 Added code coverate support to Godot 2023-08-30 10:41:17 +02:00
Hugo Locurcio
ab28148fdc Update PCK embedding SCons warning message to mention mold linker
mold is now part of the SCons `linker` option.

(cherry picked from commit 074d87d7188da6400028c719ea7571bff6265c36)
2023-08-30 10:23:04 +02:00
Riteo
63f21ecadb Make PIE relocation detection glibc-only
Musl doesn't compile with it, and by looking online I think that this is
a glibc only thing.

(cherry picked from commit 2a6ce37910ac9765c36cbcc3a0a09916da4debe3)
2023-08-30 10:20:56 +02:00
Ekaterina Vaartis
2bac27b711 Alter linux debug stacktraces handling to support more environments
- Use -gdwarf-4 to support both LLVM and GCC when calling addr2line
- Subtract position-independant execuable relocation when passing the
  address to addr2line

(cherry picked from commit 5e041eee11e611bc2c89dd54b1dad28d0660f335)
2023-08-30 10:20:09 +02:00
puzzud
21d78d77f6 Prevent double input events on gamepad when running through steam input #79706
Co-authored-by: Eoin O'Neill <eoinoneill1991@gmail.com>
2023-08-27 11:47:35 +02:00
bruvzg
db0014d68a Use current keyboard layout in OS_X11::keyboard_get_scancode_from_physical. 2023-06-28 12:20:43 +02:00
Rémi Verschelde
90cd6b3cdc Linux: Don't use udev for joypad hotloading when running in a sandbox
udev doesn't work in sandboxes, notably the new Steam container runtime
as found notably on the Steam Deck, and in Flatpak/Snap packages.

Like SDL does, when we detect such a containerized environment, we fall
back to parsing `/dev/input` directly.
See smcv's comments in #76879 for details.

Fixes #76879.

(cherry picked from commit 788cb74cc676627b6c9b7e29a47200141cca92ff)
2023-06-11 08:47:41 +02:00
1b0aac6028 Renamed Map to RBMap. 2023-01-15 19:12:50 +01:00
nyanpasu64
6064befd94 Fix burning CPU with udev disabled on Flatpak
Fixes #67355.

(cherry picked from commit 0cbd1c85a96384ef93978661e408ce7c1b721847)
2022-12-12 12:12:48 +01:00
Abdulrahman Al Zeidi
238cd5d5bf Fix static object destructors being called on gpu selection with X11
(cherry picked from commit 5860f81c18a2de8b3f38d5a58946939b5cc81425)
2022-11-30 19:20:36 +01:00
Riteo
658e19194d Actually set the execinfo flag on non-glibc systems
(cherry picked from commit a3b53538920e1a60102623a894533da76f127c22)
2022-11-30 19:07:45 +01:00
Hugo Locurcio
5b2fa8320b Automatically use execinfo for crash handler on *BSD and musl-based Linux
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit 8e04bffbcfd5dc846e15c5e6471f96693ee698fe)
2022-11-30 19:07:29 +01:00
6f4a778796 Don't try to include x86 assembly into non-x86 based platforms when cross compiling the x11 platform on x86. 2022-10-12 12:18:56 +02:00
Rémi Verschelde
fe5d1cc8ff SCons: Refactor handling of production flag and per-platform LTO defaults
Fixup to #63288.
See #65583 for the bug report.

Co-authored-by: Cyberrebell <chainsaw75@web.de>
(cherry picked from commit 35a15e619161798820b2bd6ff46178c5b7ccebcf)
2022-10-08 16:18:23 +02:00
Rémi Verschelde
c708c44180 SCons: Refactor LTO options with lto=<none|thin|full>
Adds support for LTO on macOS and Android.
Disable LTO by default on iOS even if `production=yes` is set.

Also add `linker` option to `server` platform missed in #63283.

Refactor code handling old arguments to make it simpler (breaks compat,
but is explicit enough about it and scripts are easy to fix).
2022-09-16 22:54:09 +02:00
Rémi Verschelde
d4e240f487 Linux: Fix GNU ld detection for pck_embed linker script
(cherry picked from commit fce3602a1e892cbc35fb3aa409bdae835a37be4f)
2022-09-16 22:31:50 +02:00
e2d42db711 Also renamed the files. 2022-08-19 21:24:36 +02:00
cffe742085 Renamed the VisualServer to RenderringServer like in Godot4, as I think it's a lot better name for it. I did not yet rename the files. 2022-08-19 20:50:20 +02:00
99e94b08c4 Moved base input related classes to core/input. 2022-08-17 17:02:24 +02:00
04feb63860 Moved Engine and projectSettings. 2022-08-17 15:35:28 +02:00
be16fe23ad Moved the error macros. 2022-08-17 15:14:19 +02:00
220b2db443 Moved String and related classes under a string folder in core. 2022-08-17 14:19:55 +02:00
388b88678e Moved container related classes in core under a new containers directory. 2022-08-17 12:53:49 +02:00
Rémi Verschelde
44c23ae9a5 SCons: Fix X11 use_lld fallback not being applied 2022-08-02 17:58:15 +02:00
679f5a7d64 Ported: SCons: Refactor Linux linker options with linker=<bfd|gold|lld|mold>
The new option is `linker` and lets the user specify the argument to
the`-fuse_ld=` linker flag directly. The supported options are:
- `default`: No change, typically uses GNU ld (bfd) unless the user or
  distro picked a different default `/usr/bin/ld`.
- `bfd`: GNU ld from binutils
- `gold`: GNU gold from binutils
- `lld`: lld from LLVM
- `mold`: mold, an extremely fast modern linker, not (yet) intended for
  use in production but great for development speed. Provided by distro
  `mold` package or needs to be compiled from source and installed to
  `/usr` otherwise.
Deprecates the `use_lld=yes` option, and make lld actually usable with
GCC too.
Not all the above are compatible or recommend for LTO, we recommend
using GNU ld with GCC LTO, or lld with LLVM ThinLTO.
- akien-mga
5bb3063eec
2022-07-29 23:18:06 +02:00
Hansem Ro
cedf68bf7f Do case-insensitive search for pen inversion detection 2022-07-29 22:36:49 +02:00
bruvzg
f8be7dd320 Improve OS.set_current_screen
Fix moving fullscreen windows on macOS and Windows
Fix window position on Linux/X11
2022-07-29 21:58:20 +02:00
e7100658d4 Ported: Fix exit code of --help and --version, and test them in CI
Corrects prior regression which caused ERROR output and exit code of 1. - Bromeon
861e155543
2022-07-29 21:45:04 +02:00
88fe196e79 Ported: [3.x, macOS, Windows, X11] Add stylus inverted/eraser support to InputEventMouseMotion event.
- hansemro
193d5c11f3
2022-07-29 20:31:16 +02:00
Wilson E. Alvarez
6e2c670826 Properly check for fullscreen toggle made through the Window Manager 2022-07-29 18:00:18 +02:00
Paweł Fertyk
d5189525b2 Fix set_window_size crash when using NaN
Fixes #60466.
2022-07-29 09:03:02 +02:00
43131ad4cb Ported: Add readable export errors. Add RTL image vertical alignment support. - bruvzg
f5fa1ca944
2022-07-28 18:40:46 +02:00
Marcel Admiraal
24db598946 Read and store joypad events in a separate thread on x11 platform 2022-07-27 15:01:13 +02:00
Rémi Verschelde
4ca6458457 Crash handler: Use print_error to include backtrace in logs 2022-07-27 14:25:16 +02:00
b26a1cd3b4 Ported: [3.x] Improve embedded PCK loading and exporting. - bruvzg
bea7c9be5d
2022-07-27 09:33:39 +02:00
Rémi Verschelde
a0f698d4a6 Linux: Use pkg-config for alsa, libudev and GL too
It's not needed on most distros as those are found in standard lib
and include paths, but on NixOS they're all in non-standard prefixes,
so we need to rely on information provided by pkg-config.

Fixes #59913.

Co-authored-by: David Lewis <davidalewis00@gmail.com>
(cherry picked from commit 07ad0664204fbc965627ed5cba548e93e5af4be7)
2022-07-27 09:03:00 +02:00
e7a5c47f8b Ported: Fix several OS_X11 memory leaks - timothyqiu
95d861694a
2022-07-27 00:04:29 +02:00
ConteZero
36def404b2 Fix X11 is_window_maximized 2022-07-25 18:00:34 +02:00
d4c57cf537 Fix compile when using llvm on linux. 2022-04-02 12:58:52 +02:00
8009d32185 Removed remnants of libvpx and libwebp. 2022-04-02 12:34:15 +02:00
32f148ac0c Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
d1587aaa6b Removed bullet. 2022-03-23 13:28:35 +01:00
987f77442a Now Vector2i is in it's own header and cpp file. 2022-03-21 01:50:02 +01:00
4d7df62b8e Clang format all files. 2022-03-18 19:00:13 +01:00