Preserve the output from the gradle build command
Updates `EditorNode#execute_and_show_output(...)` to return the output of the executed command.
This commit is contained in:
parent
e38686f85b
commit
136b7f9c52
|
@ -6733,7 +6733,7 @@ static void _execute_thread(void *p_ud) {
|
|||
eta->done.set();
|
||||
}
|
||||
|
||||
int EditorNode::execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok, bool p_close_on_errors) {
|
||||
int EditorNode::execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok, bool p_close_on_errors, String *r_output) {
|
||||
if (execute_output_dialog) {
|
||||
execute_output_dialog->set_title(p_title);
|
||||
execute_output_dialog->get_ok_button()->set_disabled(true);
|
||||
|
@ -6779,6 +6779,9 @@ int EditorNode::execute_and_show_output(const String &p_title, const String &p_p
|
|||
execute_output_dialog->get_ok_button()->set_disabled(false);
|
||||
}
|
||||
|
||||
if (r_output) {
|
||||
*r_output = eta.output;
|
||||
}
|
||||
return eta.exitcode;
|
||||
}
|
||||
|
||||
|
|
|
@ -929,7 +929,7 @@ public:
|
|||
|
||||
bool has_scenes_in_session();
|
||||
|
||||
int execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok = true, bool p_close_on_errors = false);
|
||||
int execute_and_show_output(const String &p_title, const String &p_path, const List<String> &p_arguments, bool p_close_on_ok = true, bool p_close_on_errors = false, String *r_output = nullptr);
|
||||
|
||||
EditorNode();
|
||||
~EditorNode();
|
||||
|
|
|
@ -3041,10 +3041,13 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
|
|||
}
|
||||
}
|
||||
|
||||
int result = EditorNode::get_singleton()->execute_and_show_output(TTR("Building Android Project (gradle)"), build_command, cmdline);
|
||||
String build_project_output;
|
||||
int result = EditorNode::get_singleton()->execute_and_show_output(TTR("Building Android Project (gradle)"), build_command, cmdline, true, false, &build_project_output);
|
||||
if (result != 0) {
|
||||
add_message(EXPORT_MESSAGE_ERROR, TTR("Export"), TTR("Building of Android project failed, check output for the error. Alternatively visit docs.godotengine.org for Android build documentation."));
|
||||
add_message(EXPORT_MESSAGE_ERROR, TTR("Export"), TTR("Building of Android project failed, check output for the error:") + "\n\n" + build_project_output);
|
||||
return ERR_CANT_CREATE;
|
||||
} else {
|
||||
print_verbose(build_project_output);
|
||||
}
|
||||
|
||||
List<String> copy_args;
|
||||
|
@ -3071,10 +3074,13 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
|
|||
copy_args.push_back("-Pexport_filename=" + export_filename);
|
||||
|
||||
print_verbose("Copying Android binary using gradle command: " + String("\n") + build_command + " " + join_list(copy_args, String(" ")));
|
||||
int copy_result = EditorNode::get_singleton()->execute_and_show_output(TTR("Moving output"), build_command, copy_args);
|
||||
String copy_binary_output;
|
||||
int copy_result = EditorNode::get_singleton()->execute_and_show_output(TTR("Moving output"), build_command, copy_args, true, false, ©_binary_output);
|
||||
if (copy_result != 0) {
|
||||
add_message(EXPORT_MESSAGE_ERROR, TTR("Export"), TTR("Unable to copy and rename export file, check gradle project directory for outputs."));
|
||||
add_message(EXPORT_MESSAGE_ERROR, TTR("Export"), TTR("Unable to copy and rename export file:") + "\n\n" + copy_binary_output);
|
||||
return ERR_CANT_CREATE;
|
||||
} else {
|
||||
print_verbose(copy_binary_output);
|
||||
}
|
||||
|
||||
print_verbose("Successfully completed Android gradle build.");
|
||||
|
|
Loading…
Reference in New Issue