Improved error checking at EditorExportPlatformPC::export_project
(cherry picked from commit 0876502f72
)
This commit is contained in:
parent
272fb05270
commit
e7837828f6
|
@ -301,8 +301,8 @@ Error DirAccess::copy(String p_from, String p_to, int p_chmod_flags) {
|
||||||
FileAccess *fsrc = FileAccess::open(p_from, FileAccess::READ, &err);
|
FileAccess *fsrc = FileAccess::open(p_from, FileAccess::READ, &err);
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
|
ERR_PRINTS("Failed to open " + p_from);
|
||||||
ERR_FAIL_COND_V(err, err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
FileAccess *fdst = FileAccess::open(p_to, FileAccess::WRITE, &err);
|
FileAccess *fdst = FileAccess::open(p_to, FileAccess::WRITE, &err);
|
||||||
|
@ -310,7 +310,8 @@ Error DirAccess::copy(String p_from, String p_to, int p_chmod_flags) {
|
||||||
|
|
||||||
fsrc->close();
|
fsrc->close();
|
||||||
memdelete(fsrc);
|
memdelete(fsrc);
|
||||||
ERR_FAIL_COND_V(err, err);
|
ERR_PRINTS("Failed to open " + p_to);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
fsrc->seek_end(0);
|
fsrc->seek_end(0);
|
||||||
|
|
|
@ -1353,27 +1353,24 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr
|
||||||
|
|
||||||
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
||||||
Error err = da->copy(template_path, p_path, get_chmod_flags());
|
Error err = da->copy(template_path, p_path, get_chmod_flags());
|
||||||
memdelete(da);
|
if (err == OK) {
|
||||||
|
String pck_path = p_path.get_basename() + ".pck";
|
||||||
|
|
||||||
if (err != OK) {
|
Vector<SharedObject> so_files;
|
||||||
return err;
|
|
||||||
|
err = save_pack(p_preset, pck_path, &so_files);
|
||||||
|
|
||||||
|
if (err == OK && !so_files.empty()) {
|
||||||
|
//if shared object files, copy them
|
||||||
|
da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
||||||
|
for (int i = 0; i < so_files.size() && err == OK; i++) {
|
||||||
|
err = da->copy(so_files[i].path, p_path.get_base_dir().plus_file(so_files[i].path.get_file()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String pck_path = p_path.get_basename() + ".pck";
|
|
||||||
|
|
||||||
Vector<SharedObject> so_files;
|
|
||||||
|
|
||||||
err = save_pack(p_preset, pck_path, &so_files);
|
|
||||||
|
|
||||||
if (err != OK || so_files.empty())
|
|
||||||
return err;
|
|
||||||
//if shared object files, copy them
|
|
||||||
da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
|
||||||
for (int i = 0; i < so_files.size(); i++) {
|
|
||||||
da->copy(so_files[i].path, p_path.get_base_dir().plus_file(so_files[i].path.get_file()));
|
|
||||||
}
|
|
||||||
memdelete(da);
|
memdelete(da);
|
||||||
return OK;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorExportPlatformPC::set_extension(const String &p_extension, const String &p_feature_key) {
|
void EditorExportPlatformPC::set_extension(const String &p_extension, const String &p_feature_key) {
|
||||||
|
|
|
@ -508,7 +508,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
if (use_dmg()) {
|
if (use_dmg()) {
|
||||||
String pack_path = tmp_app_path_name + "/Contents/Resources/" + pkg_name + ".pck";
|
String pack_path = tmp_app_path_name + "/Contents/Resources/" + pkg_name + ".pck";
|
||||||
Vector<SharedObject> shared_objects;
|
Vector<SharedObject> shared_objects;
|
||||||
Error err = save_pack(p_preset, pack_path, &shared_objects);
|
err = save_pack(p_preset, pack_path, &shared_objects);
|
||||||
|
|
||||||
// see if we can code sign our new package
|
// see if we can code sign our new package
|
||||||
String identity = p_preset->get("codesign/identity");
|
String identity = p_preset->get("codesign/identity");
|
||||||
|
@ -516,7 +516,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
||||||
for (int i = 0; i < shared_objects.size(); i++) {
|
for (int i = 0; i < shared_objects.size(); i++) {
|
||||||
da->copy(shared_objects[i].path, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file());
|
err = da->copy(shared_objects[i].path, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file());
|
||||||
if (err == OK && identity != "") {
|
if (err == OK && identity != "") {
|
||||||
err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file());
|
err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Frameworks/" + shared_objects[i].path.get_file());
|
||||||
}
|
}
|
||||||
|
@ -561,7 +561,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
String pack_path = EditorSettings::get_singleton()->get_cache_dir().plus_file(pkg_name + ".pck");
|
String pack_path = EditorSettings::get_singleton()->get_cache_dir().plus_file(pkg_name + ".pck");
|
||||||
|
|
||||||
Vector<SharedObject> shared_objects;
|
Vector<SharedObject> shared_objects;
|
||||||
Error err = save_pack(p_preset, pack_path, &shared_objects);
|
err = save_pack(p_preset, pack_path, &shared_objects);
|
||||||
|
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
zipOpenNewFileInZip(dst_pkg_zip,
|
zipOpenNewFileInZip(dst_pkg_zip,
|
||||||
|
@ -593,7 +593,9 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
} else {
|
} else {
|
||||||
err = ERR_CANT_OPEN;
|
err = ERR_CANT_OPEN;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err == OK) {
|
||||||
//add shared objects
|
//add shared objects
|
||||||
for (int i = 0; i < shared_objects.size(); i++) {
|
for (int i = 0; i < shared_objects.size(); i++) {
|
||||||
Vector<uint8_t> file = FileAccess::get_file_as_array(shared_objects[i].path);
|
Vector<uint8_t> file = FileAccess::get_file_as_array(shared_objects[i].path);
|
||||||
|
@ -621,7 +623,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
zipClose(dst_pkg_zip, NULL);
|
zipClose(dst_pkg_zip, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {
|
bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {
|
||||||
|
|
Loading…
Reference in New Issue