Skip to content

Commit 1b44b5d

Browse files
committed
Merge branch 'Fix_clean_file_path' into 'main'
Changes to make sure we use clean file path See merge request Sharpmake/sharpmake!628
2 parents 1d4f8ba + 4d3b501 commit 1b44b5d

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

Sharpmake/Assembler.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -359,16 +359,24 @@ public AssemblerContext(Assembler assembler, AssemblyInfo assemblyInfo, IBuilder
359359
_builderContext = builderContext;
360360
AllParsers = assembler.ComputeParsers();
361361
AllParsingFlowParsers = assembler.ComputeParsingFlowParsers();
362-
_assemblyInfo._sourceFiles.AddRange(sources);
363-
_visiting = new Strings(new FileSystemStringComparer(), sources);
362+
//Make sure to use clean files path
363+
var cleanSourceFiles = sources?.Select(s => Path.GetFullPath(s));
364+
_assemblyInfo._sourceFiles.AddRange(cleanSourceFiles);
365+
_visiting = new Strings(new FileSystemStringComparer(), cleanSourceFiles);
364366
}
365367

366368
public void AddSourceFile(string file)
367369
{
368-
if (!_visiting.Contains(file))
370+
//Make sure to use clean file path
371+
//To avoid ambiguity for example, consider these 2 file paths
372+
//F:\my_workspace\git\XXX\.\XXX.sharpmake.cs
373+
//F:\my_workspace\git\XXX\XXX.sharpmake.cs
374+
var cleanFilePath = Path.GetFullPath(file);
375+
376+
if (!_visiting.Contains(cleanFilePath))
369377
{
370-
_assemblyInfo._sourceFiles.Add(file);
371-
_visiting.Add(file);
378+
_assemblyInfo._sourceFiles.Add(cleanFilePath);
379+
_visiting.Add(cleanFilePath);
372380
}
373381
}
374382

0 commit comments

Comments
 (0)