Export working (for linux at least)

This commit is contained in:
Juan Linietsky 2017-03-21 19:34:26 -03:00
parent b5a06cecff
commit c37fad650f
5 changed files with 100 additions and 17 deletions

View file

@ -315,17 +315,20 @@ Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_pat
return OK;
}
String EditorExportPlatform::find_export_template(String template_file_name, String *err) const {
String EditorExportPlatform::find_export_template(String template_file_name) const {
String user_file = EditorSettings::get_singleton()->get_settings_path() + "/templates/" + itos(VERSION_MAJOR) + "." + itos(VERSION_MINOR) + "." + _MKSTR(VERSION_STATUS) + "/" + template_file_name;
String base_name = itos(VERSION_MAJOR) + "." + itos(VERSION_MINOR) + "-" + _MKSTR(VERSION_STATUS) + "/" + template_file_name;
String user_file = EditorSettings::get_singleton()->get_settings_path() + "/templates/" + base_name;
String system_file = OS::get_singleton()->get_installed_templates_path();
bool has_system_path = (system_file != "");
system_file += template_file_name;
system_file = system_file.plus_file(base_name);
print_line("test user file: " + user_file);
// Prefer user file
if (FileAccess::exists(user_file)) {
return user_file;
}
print_line("test system file: " + system_file);
// Now check system file
if (has_system_path) {
@ -333,16 +336,9 @@ String EditorExportPlatform::find_export_template(String template_file_name, Str
return system_file;
}
}
print_line("none,sorry");
// Not found
if (err) {
*err += "No export template found at \"" + user_file + "\"";
if (has_system_path)
*err += "\n or \"" + system_file + "\".";
else
*err += ".";
}
return "";
return String(); //not found
}
Ref<EditorExportPreset> EditorExportPlatform::create_preset() {
@ -880,7 +876,42 @@ String EditorExportPlatformPC::get_binary_extension() const {
Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
return OK;
String custom_debug = p_preset->get("custom_template/debug");
String custom_release = p_preset->get("custom_template/release");
String template_path = p_debug ? custom_debug : custom_release;
template_path = template_path.strip_edges();
if (template_path == String()) {
if (p_preset->get("binary_format/64_bits")) {
if (p_debug) {
template_path = find_export_template(debug_file_64);
} else {
template_path = find_export_template(release_file_64);
}
} else {
if (p_debug) {
template_path = find_export_template(debug_file_32);
} else {
template_path = find_export_template(release_file_32);
}
}
}
if (template_path != String() && !FileAccess::exists(template_path)) {
EditorNode::get_singleton()->show_warning(TTR("Template file not found:\n") + template_path);
return ERR_FILE_NOT_FOUND;
}
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
da->copy(template_path, p_path);
memdelete(da);
String pck_path = p_path.get_basename() + ".pck";
return save_pack(p_preset, pck_path);
}
void EditorExportPlatformPC::set_extension(const String &p_extension) {