Browse Source

Merge pull request #2292 from blackwc/can_export

Improve export validation
Juan Linietsky 9 years ago
parent
commit
068b177c12
2 changed files with 25 additions and 11 deletions
  1. 23 11
      tools/editor/editor_import_export.cpp
  2. 2 0
      tools/editor/project_export.cpp

+ 23 - 11
tools/editor/editor_import_export.cpp

@@ -1209,30 +1209,42 @@ bool EditorExportPlatformPC::can_export(String *r_error) const {
 
 	String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
 
-	if (!FileAccess::exists(exe_path+debug_binary32) || !FileAccess::exists(exe_path+release_binary32)) {
+	if (use64 && (!FileAccess::exists(exe_path+debug_binary64) || !FileAccess::exists(exe_path+release_binary64))) {
 		valid=false;
-		err="No 32 bits export templates found.\nDownload and install export templates.\n";
+		err="No 64 bits export templates found.\nDownload and install export templates.\n";
 	}
-	if (!FileAccess::exists(exe_path+debug_binary64) || !FileAccess::exists(exe_path+release_binary64)) {
+
+	if (!use64 && (!FileAccess::exists(exe_path+debug_binary32) || !FileAccess::exists(exe_path+release_binary32))) {
 		valid=false;
-		err="No 64 bits export templates found.\nDownload and install export templates.\n";
+		err="No 32 bits export templates found.\nDownload and install export templates.\n";
+	}
+
+	if(custom_debug_binary=="" && custom_release_binary=="") {
+		if (r_error) *r_error=err;
+		return valid;
 	}
 
+	bool dvalid = true;
+	bool rvalid = true;
 
-	if (custom_debug_binary!="" && !FileAccess::exists(custom_debug_binary)) {
-		valid=false;
-		err+="Custom debug binary not found.\n";
+	if(!FileAccess::exists(custom_debug_binary)) {
+		dvalid = false;
+		err = "Custom debug binary not found.\n";
 	}
 
-	if (custom_release_binary!="" && !FileAccess::exists(custom_release_binary)) {
-		valid=false;
-		err+="Custom release binary not found.\n";
+	if(!FileAccess::exists(custom_release_binary)) {
+		rvalid = false;
+		err = "Custom release binary not found.\n";
 	}
 
+	if (dvalid || rvalid)
+		valid = true;
+	else
+		valid = false;
+
 	if (r_error)
 		*r_error=err;
 	return valid;
-
 }
 
 

+ 2 - 0
tools/editor/project_export.cpp

@@ -193,6 +193,8 @@ void ProjectExportDialog::_prop_edited(String what) {
 
 	_save_export_cfg();
 
+	_validate_platform();
+
 }
 
 void ProjectExportDialog::_filters_edited(String what) {