Fix export plugins after embedded PCK loading changes.

This commit is contained in:
bruvzg 2022-05-04 12:57:21 +03:00
parent 3ac1c8e9f3
commit 800a68837f
4 changed files with 18 additions and 9 deletions

View File

@ -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) { 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); ExportNotifier notifier(*this, p_preset, p_debug, p_path, p_flags);
Error err = prepare_template(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) { if (err == OK) {
err = export_project_data(p_preset, p_debug, p_path, p_flags); err = export_project_data(p_preset, p_debug, p_path, p_flags);
} }

View File

@ -442,8 +442,9 @@ public:
virtual Error sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path); 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; 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); virtual 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 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_extension(const String &p_extension, const String &p_feature_key = "default");
void set_name(const String &p_name); void set_name(const String &p_name);

View File

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

View File

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