Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions src/coreclr/tools/aot/crossgen2/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,8 @@ public int Run()
{
foreach (var inputFile in inputFilePaths)
{
var tmpOutFile = inputFile.Value.Replace(".dll", ".ni.dll.tmp");
var outFile = inputFile.Value.Replace(".dll", ".ni.dll");
var tmpOutFile = GetNearOutputFilePath(inputFile.Value, temporary: true);
var outFile = GetNearOutputFilePath(inputFile.Value, temporary: false);
Console.WriteLine($@"Moving R2R PE file: {tmpOutFile} to {outFile}");
System.IO.File.Move(tmpOutFile, outFile);
}
Expand All @@ -324,6 +324,23 @@ public int Run()
return 0;
}

private static string GetNearOutputFilePath(string inFilePath, bool temporary)
{
string inputFileExtension = Path.GetExtension(inFilePath);
if (inputFileExtension.Equals(".dll", StringComparison.OrdinalIgnoreCase))
{
return Path.ChangeExtension(inFilePath, temporary ? ".ni.dll.tmp" : ".ni.dll");
}
else if (inputFileExtension.Equals(".exe", StringComparison.OrdinalIgnoreCase))
{
return Path.ChangeExtension(inFilePath, temporary ? ".ni.exe.tmp" : ".ni.exe");
}
else
{
throw new CommandLineException(string.Format(SR.UnsupportedInputFileExtension, inputFileExtension));
}
}

private void RunSingleCompilation(Dictionary<string, string> inFilePaths, InstructionSetSupport instructionSetSupport, string compositeRootPath, Dictionary<string, string> unrootedInputFilePaths, HashSet<ModuleDesc> versionBubbleModulesHash, ReadyToRunCompilerContext typeSystemContext, Logger logger)
{
//
Expand All @@ -332,19 +349,7 @@ private void RunSingleCompilation(Dictionary<string, string> inFilePaths, Instru
var e = inFilePaths.GetEnumerator();
e.MoveNext();
string inFilePath = e.Current.Value;
string inputFileExtension = Path.GetExtension(inFilePath);
string nearOutFilePath = inputFileExtension switch
{
".dll" => Path.ChangeExtension(inFilePath,
_singleFileCompilation&& _inputBubble
? ".ni.dll.tmp"
: ".ni.dll"),
".exe" => Path.ChangeExtension(inFilePath,
_singleFileCompilation && _inputBubble
? ".ni.exe.tmp"
: ".ni.exe"),
_ => throw new CommandLineException(string.Format(SR.UnsupportedInputFileExtension, inputFileExtension))
};
string nearOutFilePath = GetNearOutputFilePath(inFilePath, temporary: _singleFileCompilation && _inputBubble);

string outFile = _outNearInput ? nearOutFilePath : _outputFilePath;
string dgmlLogFileName = Get(_command.DgmlLogFileName);
Expand Down
Loading