Skip to content

Commit

Permalink
Merge pull request #54262 from raulsntos/csproj-globbing-3.x
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga authored Oct 26, 2021
2 parents 5d0ec17 + ced4f35 commit 23955fc
Showing 1 changed file with 14 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,19 @@ public static void RenameItemInProjectChecked(string projectPath, string itemTyp
if (item == null)
return;

// Check if the found item include already matches the new path
var glob = MSBuildGlob.Parse(item.Include);
if (glob.IsMatch(normalizedNewInclude))
return;

// Otherwise, if the item include uses globbing it's better to add a new item instead of modifying
if (!string.IsNullOrEmpty(glob.WildcardDirectoryPart) || glob.FilenamePart.Contains("*"))
{
root.AddItem(itemType, normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\"));
root.Save();
return;
}

item.Include = normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\");
root.Save();
}
Expand Down Expand Up @@ -315,7 +328,7 @@ void RemoveElements(IEnumerable<ProjectElement> elements)

// Godot API References

var apiAssemblies = new[] {ApiAssemblyNames.Core, ApiAssemblyNames.Editor};
var apiAssemblies = new[] { ApiAssemblyNames.Core, ApiAssemblyNames.Editor };

RemoveElements(root.ItemGroups.SelectMany(g => g.Items)
.Where(i => i.ItemType == "Reference" && apiAssemblies.Contains(i.Include)));
Expand Down

0 comments on commit 23955fc

Please sign in to comment.