[tools] Compute the llvm output file and pass it to the AOT compiler / native linker

This commit is contained in:
Rolf Bjarne Kvinge 2021-07-15 11:57:21 +02:00
Родитель 476d35909a
Коммит 2014bf68c3
2 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -738,6 +738,7 @@
<ItemGroup Condition="'$(IsMacEnabled)' == 'true'">
<!-- Add the AOT-compiled output to the main executable -->
<_XamarinMainLibraries Include="@(_AssembliesToAOT -> '%(ObjectFile)')" />
<_XamarinMainLibraries Include="@(_AssembliesToAOT -> '%(LLVMFile)')" />
<!-- copy the aotdata files to the .app -->
<ResolvedFileToPublish Include="%(_AssembliesToAOT.AOTData)" >

Просмотреть файл

@ -36,9 +36,7 @@ namespace Xamarin.Linker {
var arch = abi.AsArchString ();
var aotAssembly = Path.Combine (outputDirectory, arch, Path.GetFileName (input) + ".s");
var aotData = Path.Combine (outputDirectory, arch, Path.GetFileNameWithoutExtension (input) + ".aotdata");
var llvmFile = string.Empty;
if ((abi & Abi.LLVM) == Abi.LLVM)
throw ErrorHelper.CreateError (99, $"Support for LLVM hasn't been implemented yet.");
var llvmFile = Configuration.Application.IsLLVM ? Path.Combine (outputDirectory, arch, Path.GetFileName (input) + ".llvm.o") : string.Empty;
var objectFile = Path.Combine (outputDirectory, arch, Path.GetFileName (input) + ".o");
app.GetAotArguments (asm.FullPath, abi, outputDirectory, aotAssembly, llvmFile, aotData, out var processArguments, out var aotArguments, Path.GetDirectoryName (Configuration.AOTCompiler));
item.Metadata.Add ("Arguments", StringUtils.FormatArguments (aotArguments));
@ -47,6 +45,7 @@ namespace Xamarin.Linker {
item.Metadata.Add ("Arch", arch);
item.Metadata.Add ("AOTData", aotData);
item.Metadata.Add ("AOTAssembly", aotAssembly);
item.Metadata.Add ("LLVMFile", llvmFile);
item.Metadata.Add ("ObjectFile", objectFile);
}