The validation logic for Min Sdk and Target Sdk was flawed as it triggers
errors for users not using Custom Build even if they never modified the
values themselves.
The default values for those settings get saved in `export_presets.cfg` and
thus the error gets triggered when moving from 3.4.4 or earlier to 3.4.5, as
the target SDK changed from 30 to 31.
So instead we just show a warning to make users aware of this non-default
Min Sdk or mostly Target Sdk that might be in their preset.
We also warn when they do use Custom Build as the target SDK 30 would likely
still be an upgrade issue and not an intentional choice, especially given
that Google Play will now require SDK 31.
The export info dialog is now exclusive so that when it doesn't auto-close,
i.e. when it errors, you don't close it by mistake by clicking outside.
The valid range for both options is no longer limited to Godot's own default
target SDK, but can accept higher values (they are not guaranteed to work,
but they might).
To be able to display warning, the relevant code is backported from 30ee208bd.
Fixes#62465 without breaking compatibility for 3.4.5.
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
(cherry picked from commit b5334d14f7)
Ensure that presets are updated with the latest files when
starting up or opening the Project Export dialog. Fixes the
error where Godot would attempt to export deleted files that
were previously selected.
(cherry picked from commit 44094b082d)
This seems to have been left dangling during 3.0 development and was
never finished.
Hiding for now until it can be completed, otherwise we'll have to drop
it.
See #22394.
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
If the target directory does not exist, it will be recursively created.
Export paths are now saved as a relative to the projects base directory
Renamed relative_to function to final_path_from_relative which takes a relative path and outputs the final path from a string that represents a directory.
Added relative_path_from_final which takes in a final path and outputs a relative path if possible. If not possible it outputs the relative path that represents the current directory.
If the target directory does not exist when exporting the project, then it is recursively created.
Removed final_path_from_relative function
Changed DirAccess into DirAccessRef for automatic object destruction
It's still not enough and we need better validation/error checking,
but it should help with people assume corrupted templates when it's
their config which is invalid.
This swaps out the CheckButton with a CheckBox, which has two benefits:
- The checkbox icon appears to the left of the text, which moves it
closer from the text. This makes it more easily noticeable, as
it also appears below the "File:" text now.
- It follows the UI convention of using checkboxes for options that
do not bear an immediate effect, unlike CheckButtons which are
expected to have an immediate effect when toggled.
This closes#25170.
Retrieved working implementation from 2.1 branch and adapted to
existing export preset system.
Added Script tab in export preset to export script as raw text,
compiled, or encrypted (same as in 2.1). The script encryption key is
visually validated. The script export mode and the key is saved per
per preset in `export_presets.cfg`, so it makes sense to ignore this
file in version control system.
Each custom exporting procedure can retrieve an export preset set
during project exporting. Refactored project export dialog a bit to
allow easier code comprehension.