Skip to content

Commit

Permalink
Merge pull request #60579 from bruvzg/export_err_msgs
Browse files Browse the repository at this point in the history
[Windows Export] Improve error messages for missing rcedit and signtool.
  • Loading branch information
akien-mga authored Apr 28, 2022
2 parents cab171c + 2ca9194 commit d01e412
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions platform/windows/export/export_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,25 +138,21 @@ void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_optio
Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
String rcedit_path = EditorSettings::get_singleton()->get("export/windows/rcedit");

if (rcedit_path.is_empty()) {
WARN_PRINT("The rcedit tool is not configured in the Editor Settings (Export > Windows > Rcedit). No custom icon or app information data will be embedded in the exported executable.");
if (rcedit_path != String() && !FileAccess::exists(rcedit_path)) {
ERR_PRINT("Could not find rcedit executable at " + rcedit_path + ", aborting.");
return ERR_FILE_NOT_FOUND;
}

if (!FileAccess::exists(rcedit_path)) {
ERR_PRINT("Could not find rcedit executable at " + rcedit_path + ", no icon or app information data will be included.");
return ERR_FILE_NOT_FOUND;
}
if (rcedit_path.is_empty()) {
rcedit_path = "rcedit"; // try to run signtool from PATH
if (rcedit_path == String()) {
rcedit_path = "rcedit"; // try to run rcedit from PATH
}

#ifndef WINDOWS_ENABLED
// On non-Windows we need WINE to run rcedit
String wine_path = EditorSettings::get_singleton()->get("export/windows/wine");

if (!wine_path.is_empty() && !FileAccess::exists(wine_path)) {
ERR_PRINT("Could not find wine executable at " + wine_path + ", no icon or app information data will be included.");
ERR_PRINT("Could not find wine executable at " + wine_path + ", aborting.");
return ERR_FILE_NOT_FOUND;
}

Expand Down Expand Up @@ -223,7 +219,7 @@ Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset

String str;
Error err = OS::get_singleton()->execute(rcedit_path, args, &str, nullptr, true);
ERR_FAIL_COND_V(err != OK, err);
ERR_FAIL_COND_V_MSG(err != OK, err, "Could not start rcedit executable, configure rcedit path in the Editor Settings (Export > Windows > Rcedit).");
print_line("rcedit (" + p_path + "): " + str);

if (str.find("Fatal error") != -1) {
Expand Down Expand Up @@ -367,7 +363,7 @@ Error EditorExportPlatformWindows::_code_sign(const Ref<EditorExportPreset> &p_p

String str;
Error err = OS::get_singleton()->execute(signtool_path, args, &str, nullptr, true);
ERR_FAIL_COND_V(err != OK, err);
ERR_FAIL_COND_V_MSG(err != OK, err, "Could not start signtool executable, configure signtool path in the Editor Settings (Export > Windows > Signtool).");

print_line("codesign (" + p_path + "): " + str);
#ifndef WINDOWS_ENABLED
Expand Down Expand Up @@ -396,7 +392,7 @@ bool EditorExportPlatformWindows::can_export(const Ref<EditorExportPreset> &p_pr
bool valid = EditorExportPlatformPC::can_export(p_preset, err, r_missing_templates);

String rcedit_path = EditorSettings::get_singleton()->get("export/windows/rcedit");
if (rcedit_path.is_empty()) {
if (p_preset->get("application/modify_resources") && rcedit_path.is_empty()) {
err += TTR("The rcedit tool must be configured in the Editor Settings (Export > Windows > Rcedit) to change the icon or app information data.") + "\n";
}

Expand Down

0 comments on commit d01e412

Please sign in to comment.