The presence of those abis cause them to be included in the set of `p_features` passed to the `gdextension_export_plugin#_export_file(...)` method, which caused them to be lumped in the `features_wo_arch` set.
When trying to find the gdextension library path, we use a predicate with the following logic:
```
[features_wo_arch, arch_tag](String p_feature) { return features_wo_arch.has(p_feature) || (p_feature == arch_tag); }
```
For a `gdextension` config file like the one below, this causes the first android entry (`android.armeabi-v7a = ...`) to always be returned regardless of archs since it always satisfies the predicate.
```
[configuration]
entry_symbol = "example_library_init"
compatibility_minimum = 4.1
[libraries]
linux.x86_64 = "res://libgdexample.so"
android.armeabi-v7a = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.arm32 = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.x86 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_32 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_64 = "res://libgdexample.android.template_release.x86_64.so"
android.arm64-v8a = "res://libgdexample.android.template_release.arm64-v8a.so"
android.arm64 = "res://libgdexample.android.template_release.arm64-v8a.so"
```
(cherry picked from commit dce2686e52)
The height of the last N items is incorrectly overwritten with
the max height of first row (N = number of columns). This happen
in the first iteration of the while loop. Moving this code inside
if (all_fit) makes sure the last rows height is only updated at
the end when max height (max_h) is calculated for the last row.
(cherry picked from commit 1533292f09)
Due to #82865, newer versions can't be used for dlink-enabled Web builds.
This isn't a problem for CI which doesn't use dlink, but it's clearer for
users if our CI version matches the one we use for official builds.
(cherry picked from commit 51aff13ef4)
- Enabling newly created addons can show a warning dialog, doing so before hiding the `ProjectSettingsEditor` dialog causes rendering glitches.
- Remove unused `PuginConfigDialog` in `EditorNode`. The one actually being used is an instance in `EditorPluginSettings`.
(cherry picked from commit 7b34fa8dd2)
issue reference [https://github.com/godotengine/godot/issues/81769]
- adding a nullptr check on a Node pointer obtained from get_node(NodePath) in case it is null now we wont execute the next instruction
> ClassDB::get_property_info(nd->get_class(), prop, &prop_info);
Which then prevents the crash
(cherry picked from commit e7a35d1521)
Implements the {project} placeholder, available when setting an external editor
in the project settings, via Editor > Editor Settings > Text Editor > External
for the c# external editor, under Editor > Editor Settings > Dotnet > Editor,
This allows passing the project folder as a command line argument when using a
custom external editor that isn't one of the available options.
Fixes#81845
(cherry picked from commit c01a47867b)
This would cause `updown.png` to be ignored in our default theme in 3.x.
These ignores were added in #36800 for #36572 (see that PR for usage
instructions).
From a quick test, using `--output-file` for `lcov` and `--output-directory`
for genhtml let us output the files in a way that won't conflict with the
Git repository (e.g. in `bin/`, or outside the Git repo).
(cherry picked from commit 5c38e42161)
When the name suffix grows, the old name is used if it is obtained first.
Fix the case where the following error message would appear when renaming
an animation.
```
ERROR: Animation '' doesn't exist.
at: get_frame_count (scene/resources/sprite_frames.cpp:71)
```
(cherry picked from commit e9cd29cf22)
LGTM has been acquired by Github, and all its features is replaced by Github Code Scanning.
So seems .lgtm.yml is no longer used.
(cherry picked from commit ee6cec1649)