Kaynağa Gözat

Merge pull request #60751 from bruvzg/exp_plug_fix4

Rémi Verschelde 3 yıl önce
ebeveyn
işleme
a9ebf121f8

+ 4 - 0
editor/editor_export.cpp

@@ -1820,7 +1820,11 @@ bool EditorExportPlatformPC::can_export(const Ref<EditorExportPreset> &p_preset,
 
 Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
 	ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags);
+
 	Error err = prepare_template(p_preset, p_debug, p_path, p_flags);
+	if (err == OK) {
+		err = modify_template(p_preset, p_debug, p_path, p_flags);
+	}
 	if (err == OK) {
 		err = export_project_data(p_preset, p_debug, p_path, p_flags);
 	}

+ 3 - 2
editor/editor_export.h

@@ -442,8 +442,9 @@ public:
 	virtual Error sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path);
 	virtual String get_template_file_name(const String &p_target, const String &p_arch) const = 0;
 
-	Error prepare_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags);
-	Error export_project_data(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags);
+	virtual Error prepare_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags);
+	virtual Error modify_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) { return OK; };
+	virtual Error export_project_data(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags);
 
 	void set_extension(const String &p_extension, const String &p_feature_key = "default");
 	void set_name(const String &p_name);

+ 10 - 7
platform/windows/export/export_plugin.cpp

@@ -53,21 +53,24 @@ Error EditorExportPlatformWindows::_export_debug_script(const Ref<EditorExportPr
 	return OK;
 }
 
+Error EditorExportPlatformWindows::modify_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
+	if (p_preset->get("application/modify_resources")) {
+		return _rcedit_add_data(p_preset, p_path);
+	} else {
+		return OK;
+	}
+}
+
 Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
 	String pck_path = p_path;
 	if (p_preset->get("binary_format/embed_pck")) {
 		pck_path = p_path.get_basename() + ".tmp";
 	}
-	Error err = EditorExportPlatformPC::prepare_template(p_preset, p_debug, pck_path, p_flags);
-	if (p_preset->get("application/modify_resources") && err == OK) {
-		err = _rcedit_add_data(p_preset, pck_path);
-	}
-	if (err == OK) {
-		err = EditorExportPlatformPC::export_project_data(p_preset, p_debug, pck_path, p_flags);
-	}
+	Error err = EditorExportPlatformPC::export_project(p_preset, p_debug, pck_path, p_flags);
 	if (p_preset->get("codesign/enable") && err == OK) {
 		err = _code_sign(p_preset, pck_path);
 	}
+
 	if (p_preset->get("binary_format/embed_pck") && err == OK) {
 		Ref<DirAccess> tmp_dir = DirAccess::create_for_path(p_path.get_base_dir());
 		err = tmp_dir->rename(pck_path, p_path);

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

@@ -44,6 +44,7 @@ class EditorExportPlatformWindows : public EditorExportPlatformPC {
 
 public:
 	virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0) override;
+	virtual Error modify_template(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) override;
 	virtual Error sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path) override;
 	virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const override;
 	virtual void get_export_options(List<ExportOption> *r_options) override;