summaryrefslogtreecommitdiffstats
path: root/modules/mono/utils
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-06-15 15:26:22 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-06-15 15:26:22 +0200
commit58416245ce257c1d659910acbecf91f1128b4add (patch)
treef2f9dad4e7665c3dbe8644dac7f83bf5c1ff9794 /modules/mono/utils
parent49b774e009826ec582fba0e144439c98f2eca09d (diff)
parent7a031be7695aa991daa4696930f0ebf6bb46ecb4 (diff)
downloadredot-engine-58416245ce257c1d659910acbecf91f1128b4add.tar.gz
Merge pull request #78218 from raulsntos/dotnet/reserved-assembly-name
C#: Avoid GodotSharp as project assembly name
Diffstat (limited to 'modules/mono/utils')
-rw-r--r--modules/mono/utils/path_utils.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/modules/mono/utils/path_utils.cpp b/modules/mono/utils/path_utils.cpp
index be5578c1d0..aa97534675 100644
--- a/modules/mono/utils/path_utils.cpp
+++ b/modules/mono/utils/path_utils.cpp
@@ -232,10 +232,12 @@ String relative_to(const String &p_path, const String &p_relative_to) {
return relative_to_impl(path_abs_norm, relative_to_abs_norm);
}
+const Vector<String> reserved_assembly_names = { "GodotSharp", "GodotSharpEditor", "Godot.SourceGenerators" };
+
String get_csharp_project_name() {
- String name = ProjectSettings::get_singleton()->get_setting_with_override("dotnet/project/assembly_name");
+ String name = GLOBAL_GET("dotnet/project/assembly_name");
if (name.is_empty()) {
- name = ProjectSettings::get_singleton()->get_setting_with_override("application/config/name");
+ name = GLOBAL_GET("application/config/name");
Vector<String> invalid_chars = Vector<String>({ //
// Windows reserved filename chars.
":", "*", "?", "\"", "<", ">", "|",
@@ -248,9 +250,16 @@ String get_csharp_project_name() {
name = name.replace(invalid_chars[i], "-");
}
}
+
if (name.is_empty()) {
name = "UnnamedProject";
}
+
+ // Avoid reserved names that conflict with Godot assemblies.
+ if (reserved_assembly_names.has(name)) {
+ name += "_";
+ }
+
return name;
}