summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-01-08 14:22:50 +0100
committerRémi Verschelde <rverschelde@gmail.com>2020-01-08 14:57:46 +0100
commit7c29ce43755d7fb083bc06d6b406e3a150145309 (patch)
tree32af7cca2dd293ae4c982d1508bcb2d4912212ba /editor/editor_node.cpp
parentae21664655a16526b1a8e3e30f4e03d9a7c9c67c (diff)
downloadredot-engine-7c29ce43755d7fb083bc06d6b406e3a150145309.tar.gz
Export: Add dedicated --export-pack option to export data pack
The previous behavior relying on the provided extension was problematic on macOS since .zip is the main extension used for the full project export (binary + data pack). We add a dedicated `--export-pack` command line option to define when only the data pack should be exported. Its extension will still be inferred from the path. Fixes #23073.
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index d7bc959729..0be0ea90a3 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -585,10 +585,7 @@ void EditorNode::_fs_changed() {
export_error = vformat("Export preset '%s' doesn't have a matching platform.", preset_name);
} else {
Error err = OK;
- // FIXME: This way to export only resources .pck or .zip is pretty hacky
- // and undocumented, and might be problematic for platforms where .zip is
- // a valid project export format (e.g. macOS).
- if (export_defer.path.ends_with(".pck") || export_defer.path.ends_with(".zip")) {
+ if (export_defer.pack_only) { // Only export .pck or .zip data pack.
if (export_defer.path.ends_with(".zip")) {
err = platform->export_zip(preset, export_defer.debug, export_defer.path);
} else if (export_defer.path.ends_with(".pck")) {
@@ -3942,11 +3939,12 @@ void EditorNode::_editor_file_dialog_unregister(EditorFileDialog *p_dialog) {
Vector<EditorNodeInitCallback> EditorNode::_init_callbacks;
-Error EditorNode::export_preset(const String &p_preset, const String &p_path, bool p_debug) {
+Error EditorNode::export_preset(const String &p_preset, const String &p_path, bool p_debug, bool p_pack_only) {
export_defer.preset = p_preset;
export_defer.path = p_path;
export_defer.debug = p_debug;
+ export_defer.pack_only = p_pack_only;
disable_progress_dialog = true;
return OK;
}