瀏覽代碼

Merge pull request #68699 from bruvzg/win_con_icon

[Windows] Add icon to the console wrapper, add option to set icon for the console wrapper on export.
Rémi Verschelde 2 年之前
父節點
當前提交
29e2aa4162

+ 9 - 2
platform/windows/export/export_plugin.cpp

@@ -111,6 +111,7 @@ void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_optio
 
 	r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "application/modify_resources"), true));
 	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/icon", PROPERTY_HINT_FILE, "*.ico"), ""));
+	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/console_wrapper_icon", PROPERTY_HINT_FILE, "*.ico"), ""));
 	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0.0"), ""));
 	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0.0"), ""));
 	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/company_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Company Name"), ""));
@@ -120,7 +121,7 @@ void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_optio
 	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/trademarks"), ""));
 }
 
-Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path, bool p_set_icon) {
+Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path, bool p_console_icon) {
 	String rcedit_path = EDITOR_GET("export/windows/rcedit");
 
 	if (rcedit_path != String() && !FileAccess::exists(rcedit_path)) {
@@ -147,6 +148,12 @@ Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset
 #endif
 
 	String icon_path = ProjectSettings::get_singleton()->globalize_path(p_preset->get("application/icon"));
+	if (p_console_icon) {
+		String console_icon_path = ProjectSettings::get_singleton()->globalize_path(p_preset->get("application/console_wrapper_icon"));
+		if (!console_icon_path.is_empty() && FileAccess::exists(console_icon_path)) {
+			icon_path = console_icon_path;
+		}
+	}
 	String file_verion = p_preset->get("application/file_version");
 	String product_version = p_preset->get("application/product_version");
 	String company_name = p_preset->get("application/company_name");
@@ -158,7 +165,7 @@ Error EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset
 
 	List<String> args;
 	args.push_back(p_path);
-	if (!icon_path.is_empty() && p_set_icon) {
+	if (!icon_path.is_empty()) {
 		args.push_back("--set-icon");
 		args.push_back(icon_path);
 	}

+ 1 - 1
platform/windows/export/export_plugin.h

@@ -38,7 +38,7 @@
 #include "platform/windows/logo.gen.h"
 
 class EditorExportPlatformWindows : public EditorExportPlatformPC {
-	Error _rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path, bool p_set_icon);
+	Error _rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path, bool p_console_icon);
 	Error _code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path);
 
 public:

+ 2 - 0
platform/windows/godot_res_wrap.rc

@@ -4,6 +4,8 @@
 #define _MKSTR(m_x) _STR(m_x)
 #endif
 
+GODOT_ICON ICON platform/windows/godot.ico
+
 1 VERSIONINFO
 FILEVERSION    	VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0
 PRODUCTVERSION 	VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0