Browse Source

Mono: Use "UnnamedProject" if application/config/name is empty

Unknown 7 years ago
parent
commit
a2247d45fc

+ 7 - 4
modules/mono/csharp_script.cpp

@@ -488,13 +488,17 @@ void CSharpLanguage::reload_assemblies_if_needed(bool p_soft_reload) {
 
 
 		GDMonoAssembly *proj_assembly = gdmono->get_project_assembly();
 		GDMonoAssembly *proj_assembly = gdmono->get_project_assembly();
 
 
+		String name = ProjectSettings::get_singleton()->get("application/config/name");
+		if (name.empty()) {
+			name = "UnnamedProject";
+		}
+
 		if (proj_assembly) {
 		if (proj_assembly) {
 			String proj_asm_path = proj_assembly->get_path();
 			String proj_asm_path = proj_assembly->get_path();
 
 
 			if (!FileAccess::exists(proj_assembly->get_path())) {
 			if (!FileAccess::exists(proj_assembly->get_path())) {
 				// Maybe it wasn't loaded from the default path, so check this as well
 				// Maybe it wasn't loaded from the default path, so check this as well
-				String proj_asm_name = ProjectSettings::get_singleton()->get("application/config/name");
-				proj_asm_path = GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(proj_asm_name);
+				proj_asm_path = GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(name);
 				if (!FileAccess::exists(proj_asm_path))
 				if (!FileAccess::exists(proj_asm_path))
 					return; // No assembly to load
 					return; // No assembly to load
 			}
 			}
@@ -502,8 +506,7 @@ void CSharpLanguage::reload_assemblies_if_needed(bool p_soft_reload) {
 			if (FileAccess::get_modified_time(proj_asm_path) <= proj_assembly->get_modified_time())
 			if (FileAccess::get_modified_time(proj_asm_path) <= proj_assembly->get_modified_time())
 				return; // Already up to date
 				return; // Already up to date
 		} else {
 		} else {
-			String proj_asm_name = ProjectSettings::get_singleton()->get("application/config/name");
-			if (!FileAccess::exists(GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(proj_asm_name)))
+			if (!FileAccess::exists(GodotSharpDirs::get_res_temp_assemblies_dir().plus_file(name)))
 				return; // No assembly to load
 				return; // No assembly to load
 		}
 		}
 	}
 	}

+ 4 - 0
modules/mono/editor/godotsharp_editor.cpp

@@ -71,6 +71,10 @@ bool GodotSharpEditor::_create_project_solution() {
 
 
 	String path = OS::get_singleton()->get_resource_dir();
 	String path = OS::get_singleton()->get_resource_dir();
 	String name = ProjectSettings::get_singleton()->get("application/config/name");
 	String name = ProjectSettings::get_singleton()->get("application/config/name");
+	if (name.empty()) {
+		name = "UnnamedProject";
+	}
+
 	String guid = CSharpProject::generate_game_project(path, name);
 	String guid = CSharpProject::generate_game_project(path, name);
 
 
 	if (guid.length()) {
 	if (guid.length()) {

+ 8 - 1
modules/mono/godotsharp_dirs.cpp

@@ -122,7 +122,14 @@ private:
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 		mono_solutions_dir = mono_user_dir.plus_file("solutions");
 		mono_solutions_dir = mono_user_dir.plus_file("solutions");
 		build_logs_dir = mono_user_dir.plus_file("build_logs");
 		build_logs_dir = mono_user_dir.plus_file("build_logs");
-		String base_path = String("res://") + ProjectSettings::get_singleton()->get("application/config/name");
+
+		String name = ProjectSettings::get_singleton()->get("application/config/name");
+		if (name.empty()) {
+			name = "UnnamedProject";
+		}
+
+		String base_path = String("res://") + name;
+
 		sln_filepath = ProjectSettings::get_singleton()->globalize_path(base_path + ".sln");
 		sln_filepath = ProjectSettings::get_singleton()->globalize_path(base_path + ".sln");
 		csproj_filepath = ProjectSettings::get_singleton()->globalize_path(base_path + ".csproj");
 		csproj_filepath = ProjectSettings::get_singleton()->globalize_path(base_path + ".csproj");
 #endif
 #endif

+ 5 - 2
modules/mono/mono_gd/gd_mono.cpp

@@ -369,9 +369,12 @@ bool GDMono::_load_project_assembly() {
 	if (project_assembly)
 	if (project_assembly)
 		return true;
 		return true;
 
 
-	String project_assembly_name = ProjectSettings::get_singleton()->get("application/config/name");
+	String name = ProjectSettings::get_singleton()->get("application/config/name");
+	if (name.empty()) {
+		name = "UnnamedProject";
+	}
 
 
-	bool success = _load_assembly(project_assembly_name, &project_assembly);
+	bool success = _load_assembly(name, &project_assembly);
 
 
 	if (success)
 	if (success)
 		mono_assembly_set_main(project_assembly->get_assembly());
 		mono_assembly_set_main(project_assembly->get_assembly());