diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-11-17 21:59:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-17 21:59:57 +0100 |
commit | 8ac9a979562384a961f0c5ac4b72bda75f645e92 (patch) | |
tree | 1193363baf2bf8d4b7d58981076df1b433b15a5c | |
parent | bfb6c97da433683e9403b5a8d3c8da01069dddf5 (diff) | |
parent | 032a1c5dc34b8ebb785b2d34148138d4d16b9059 (diff) |
Merge pull request #43621 from Faless/fix/4.x_cli_export
Fix CLI export when export_path is in preset.
-rw-r--r-- | editor/editor_node.cpp | 17 | ||||
-rw-r--r-- | main/main.cpp | 8 |
2 files changed, 10 insertions, 15 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 98f461e442..976afd8e8e 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -760,15 +760,18 @@ void EditorNode::_fs_changed() { preset_name); } else { Ref<EditorExportPlatform> platform = preset->get_platform(); - if (platform.is_null()) { + const String export_path = export_defer.path.empty() ? preset->get_export_path() : export_defer.path; + if (export_path.empty()) { + export_error = vformat("Export preset '%s' doesn't have a default export path, and none was specified.", preset_name); + } else if (platform.is_null()) { export_error = vformat("Export preset '%s' doesn't have a matching platform.", preset_name); } else { Error err = OK; 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")) { - err = platform->export_pack(preset, export_defer.debug, export_defer.path); + if (export_path.ends_with(".zip")) { + err = platform->export_zip(preset, export_defer.debug, export_path); + } else if (export_path.ends_with(".pck")) { + err = platform->export_pack(preset, export_defer.debug, export_path); } } else { // Normal project export. String config_error; @@ -777,7 +780,7 @@ void EditorNode::_fs_changed() { ERR_PRINT(vformat("Cannot export project with preset '%s' due to configuration errors:\n%s", preset_name, config_error)); err = missing_templates ? ERR_FILE_NOT_FOUND : ERR_UNCONFIGURED; } else { - err = platform->export_project(preset, export_defer.debug, export_defer.path); + err = platform->export_project(preset, export_defer.debug, export_path); } } switch (err) { @@ -787,7 +790,7 @@ void EditorNode::_fs_changed() { export_error = vformat("Project export failed for preset '%s', the export template appears to be missing.", preset_name); break; case ERR_FILE_BAD_PATH: - export_error = vformat("Project export failed for preset '%s', the target path '%s' appears to be invalid.", preset_name, export_defer.path); + export_error = vformat("Project export failed for preset '%s', the target path '%s' appears to be invalid.", preset_name, export_path); break; default: export_error = vformat("Project export failed with error code %d for preset '%s'.", (int)err, preset_name); diff --git a/main/main.cpp b/main/main.cpp index 29497cd1cf..51d2cbfe71 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1890,14 +1890,6 @@ bool Main::start() { return false; } - if (_export_preset != "") { - if (positional_arg == "") { - String err = "Command line includes export parameter option, but no destination path was given.\n"; - err += "Please specify the binary's file path to export to. Aborting export."; - ERR_PRINT(err); - return false; - } - } #endif if (script == "" && game_path == "" && String(GLOBAL_DEF("application/run/main_scene", "")) != "") { |