mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-09 17:44:48 +09:00
Create Sdk.props in AOT compilers with a template (#53685)
* Create Sdk.props in AOT compilers with a template Fixes https://github.com/dotnet/runtime/issues/53653 Example: ``` sudo cat Sdk/Sdk.props <Project> <ItemGroup> <MonoAotCrossCompilerPath Include="$(MSBuildThisFileDirectory)..\tools\mono-aot-cross" RuntimeIdentifier="iossimulator-arm64" /> </ItemGroup> </Project> ```
This commit is contained in:
parent
1ec8a0a5c7
commit
ccec848395
13 changed files with 59 additions and 27 deletions
|
@ -94,7 +94,7 @@
|
|||
<RemoveDir Directories="$(BundleDir)" />
|
||||
|
||||
<MonoAOTCompiler Condition="'$(RunAOTCompilation)' == 'true'"
|
||||
CompilerBinaryPath="$(MonoAotCrossCompilerPath)"
|
||||
CompilerBinaryPath="@(MonoAotCrossCompiler->WithMetadataValue('RuntimeIdentifier','$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())'))"
|
||||
OutputDir="$(_MobileIntermediateOutputPath)"
|
||||
Mode="Full"
|
||||
OutputType="AsmOnly"
|
||||
|
@ -178,7 +178,7 @@
|
|||
<RemoveDir Directories="$(BundleDir)" />
|
||||
|
||||
<MonoAOTCompiler Condition="'$(RunAOTCompilation)' == 'true'"
|
||||
CompilerBinaryPath="$(MonoAotCrossCompilerPath)"
|
||||
CompilerBinaryPath="@(MonoAotCrossCompiler->WithMetadataValue('RuntimeIdentifier','$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())'))"
|
||||
OutputDir="$(_MobileIntermediateOutputPath)"
|
||||
Mode="$(AOTMode)"
|
||||
OutputType="AsmOnly"
|
||||
|
|
|
@ -22,9 +22,12 @@
|
|||
|
||||
<!-- For both tests.mobile.targets and tests.wasm.targets -->
|
||||
<PropertyGroup>
|
||||
<MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe</_MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<MonoAotCrossCompiler Include="$(_MonoAotCrossCompilerPath)" RuntimeIdentifier="$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ArchiveTestsAfterTargets>PrepareForRun</ArchiveTestsAfterTargets>
|
||||
|
|
|
@ -257,4 +257,8 @@
|
|||
<PropertyGroup Condition="'$(TargetArchitecture)' == 'arm64' AND '$(BuildArchitecture)' != 'arm64'">
|
||||
<_hostArch>amd64</_hostArch>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<WorkloadTasksAssemblyPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WorkloadBuildTasks', 'Debug', '$(NetCoreAppToolCurrent)'))WorkloadBuildTasks.dll</WorkloadTasksAssemblyPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -13,5 +13,7 @@
|
|||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Archives" Version="$(MicrosoftDotNetBuildTasksArchivesVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<UsingTask TaskName="GenerateFileFromTemplate" AssemblyFile="$(WorkloadTasksAssemblyPath)" />
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)..))" />
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<MonoAotCrossCompilerPath>$(MSBuildThisFileDirectory)..\tools\mono-aot-cross</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
<Project>
|
||||
<ItemGroup>
|
||||
<MonoAotCrossCompiler Include="$(MSBuildThisFileDirectory)..\tools\mono-aot-cross${ExeSuffix}" RuntimeIdentifier="${TargetRid}" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -19,9 +19,21 @@
|
|||
|
||||
<ItemGroup>
|
||||
<NativeRuntimeAsset Include="$(MonoAotCrossDir)$(TargetCrossRid)\**" TargetPath="tools/" />
|
||||
<NativeRuntimeAsset Include="$(MSBuildThisFileDirectory)Microsoft.NETCore.App.MonoCrossAOT.Sdk.props" TargetPath="Sdk/Sdk.props" />
|
||||
<NativeRuntimeAsset Include="$(MonoAotCrossDir)$(TargetCrossRid).Sdk.props" TargetPath="Sdk/Sdk.props" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="WriteAotSdkProps" BeforeTargets="ValidateProperties">
|
||||
<ItemGroup>
|
||||
<_SdkPropsProperties Condition="!$([MSBuild]::IsOsPlatform('Windows'))" Include="ExeSuffix" Value="" />
|
||||
<_SdkPropsProperties Condition="$([MSBuild]::IsOsPlatform('Windows'))" Include="ExeSuffix" Value=".exe" />
|
||||
<_SdkPropsProperties Include="TargetRid" Value="$(TargetCrossRid)" />
|
||||
</ItemGroup>
|
||||
<GenerateFileFromTemplate
|
||||
TemplateFile="Microsoft.NETCore.App.MonoCrossAOT.Sdk.props.in"
|
||||
Properties="@(_SdkPropsProperties)"
|
||||
OutputPath="$(MonoAotCrossDir)$(TargetCrossRid).Sdk.props" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ValidateProperties" BeforeTargets="GenerateNuspec">
|
||||
<Error Condition="'$(TargetCrossRid)' == ''" Text="TargetCrossRid not set" />
|
||||
<Error Condition="!Exists('$(MonoAotCrossDir)$(TargetCrossRid)\$(AotCompilerFileName)')" Text="Cross compiler not found in $(MonoAotCrossDir)$(TargetCrossRid)" />
|
||||
|
|
|
@ -296,9 +296,12 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
|
||||
<MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe</_MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
|
||||
<MonoAotCrossCompiler Include="$(_MonoAotCrossCompilerPath)" RuntimeIdentifier="$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Condition="'$(TargetOS)' == 'Browser'" Importance="High" Text="Using emsdk: $(EmSdkDir)" />
|
||||
|
||||
|
|
|
@ -61,9 +61,12 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<MonoAotCrossDir>$([MSBuild]::NormalizePath($(RuntimeBinDir), 'cross', '$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())'))</MonoAotCrossDir>
|
||||
<MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe</_MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<MonoAotCrossCompiler Include="$(_MonoAotCrossCompilerPath)" RuntimeIdentifier="$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Paths for Mobile App Projects -->
|
||||
<PropertyGroup>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<Message Importance="High" Text="SourceDir: $(OutputPath)" />
|
||||
|
||||
<MonoAOTCompiler Condition="'$(ForceAOT)' == 'true'"
|
||||
CompilerBinaryPath="$(MonoAotCrossCompilerPath)"
|
||||
CompilerBinaryPath="@(MonoAotCrossCompiler->WithMetadataValue('RuntimeIdentifier','$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())'))"
|
||||
OutputDir="$(_MobileIntermediateOutputPath)"
|
||||
Mode="Full"
|
||||
OutputType="AsmOnly"
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
<MonoAOTCompiler
|
||||
Condition="'$(RunAOTCompilation)' == 'true'"
|
||||
CompilerBinaryPath="$(MonoAotCrossCompilerPath)"
|
||||
CompilerBinaryPath="@(MonoAotCrossCompiler->WithMetadataValue('RuntimeIdentifier','$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())'))"
|
||||
Mode="$(AOTMode)"
|
||||
OutputType="AsmOnly"
|
||||
Assemblies="@(AotInputAssemblies)"
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
<MonoAOTCompilerDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(_NetCoreAppToolCurrent)'))</MonoAOTCompilerDir>
|
||||
|
||||
<MonoArtifactsPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'mono', '$(TargetOS).$(TargetArchitecture).$(RuntimeConfig)'))</MonoArtifactsPath>
|
||||
<MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoArtifactsPath), 'cross', '$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())', 'mono-aot-cross'))</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoArtifactsPath), 'cross', '$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())', 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe</_MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(RuntimeSrcDir)' == '' and '$(WasmBuildSupportDir)' != ''">
|
||||
|
@ -48,10 +48,14 @@
|
|||
<WasmAppBuilderDir>$([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'WasmAppBuilder'))</WasmAppBuilderDir>
|
||||
<WasmBuildTasksDir>$([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'WasmBuildTasks'))</WasmBuildTasksDir>
|
||||
|
||||
<MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(BuildBaseDir), 'cross', 'mono-aot-cross'))</MonoAotCrossCompilerPath>
|
||||
<MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(MonoAotCrossCompilerPath).exe</MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(BuildBaseDir), 'cross', 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
|
||||
<_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe</_MonoAotCrossCompilerPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<MonoAotCrossCompiler Include="$(_MonoAotCrossCompilerPath)" RuntimeIdentifier="$(TargetOS.ToLowerInvariant())-$(TargetArchitecture.ToLowerInvariant())" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<MicrosoftNetCoreAppRuntimePackRidDir>$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackLocationToUse), 'runtimes', 'browser-wasm'))</MicrosoftNetCoreAppRuntimePackRidDir>
|
||||
<WasmAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WasmAppBuilderDir)', 'WasmAppBuilder.dll'))</WasmAppBuilderTasksAssemblyPath>
|
||||
|
|
|
@ -150,6 +150,7 @@
|
|||
Text="$(_EMSDKMissingErrorMessage) Emscripten SDK is required for building native files." />
|
||||
|
||||
<PropertyGroup>
|
||||
<_MonoAotCrossCompilerPath>@(MonoAotCrossCompiler->WithMetadataValue('RuntimeIdentifier','browser-wasm'))</_MonoAotCrossCompilerPath>
|
||||
<_EmccDefaultFlagsRsp>$([MSBuild]::NormalizePath($(_WasmRuntimePackSrcDir), 'emcc-default.rsp'))</_EmccDefaultFlagsRsp>
|
||||
<WasmNativeStrip Condition="'$(WasmNativeStrip)' == ''">true</WasmNativeStrip>
|
||||
<WasmNativeDebugSymbols Condition="'$(WasmNativeDebugSymbols)' == ''">true</WasmNativeDebugSymbols>
|
||||
|
@ -207,10 +208,10 @@
|
|||
</Target>
|
||||
|
||||
<Target Name="_GenerateICallTable" Condition="'$(WasmLinkIcalls)' == 'true'">
|
||||
<Error Condition="'$(MonoAotCrossCompilerPath)' == '' or !Exists('$(MonoAotCrossCompilerPath)')"
|
||||
Text="Could not find AOT cross compiler at %24(MonoAotCrossCompilerPath)=$(MonoAotCrossCompilerPath)" />
|
||||
<Error Condition="'$(_MonoAotCrossCompilerPath)' == '' or !Exists('$(_MonoAotCrossCompilerPath)')"
|
||||
Text="Could not find AOT cross compiler at %24(_MonoAotCrossCompilerPath)=$(_MonoAotCrossCompilerPath)" />
|
||||
|
||||
<Exec Command='"$(MonoAotCrossCompilerPath)" --print-icall-table > "$(_WasmRuntimeICallTablePath)"' />
|
||||
<Exec Command='"$(_MonoAotCrossCompilerPath)" --print-icall-table > "$(_WasmRuntimeICallTablePath)"' />
|
||||
<IcallTableGenerator
|
||||
RuntimeIcallTableFile="$(_WasmRuntimeICallTablePath)"
|
||||
Assemblies="@(_WasmAssembliesInternal)"
|
||||
|
@ -338,8 +339,8 @@ EMSCRIPTEN_KEEPALIVE void mono_wasm_load_profiler_aot (const char *desc) { mono_
|
|||
<Error Condition="'@(_WasmAssembliesInternal)' == ''" Text="Item _WasmAssembliesInternal is empty" />
|
||||
<Error Condition="'$(_IsEMSDKMissing)' == 'true'"
|
||||
Text="$(_EMSDKMissingErrorMessage) Emscripten SDK is required for AOT'ing assemblies." />
|
||||
<Error Condition="'$(MonoAotCrossCompilerPath)' == '' or !Exists('$(MonoAotCrossCompilerPath)')"
|
||||
Text="Could not find AOT cross compiler at %24(MonoAotCrossCompilerPath)=$(MonoAotCrossCompilerPath)" />
|
||||
<Error Condition="'$(_MonoAotCrossCompilerPath)' == '' or !Exists('$(_MonoAotCrossCompilerPath)')"
|
||||
Text="Could not find AOT cross compiler at %24(_MonoAotCrossCompilerPath)=$(_MonoAotCrossCompilerPath)" />
|
||||
|
||||
<ItemGroup>
|
||||
<MonoAOTCompilerDefaultAotArguments Include="no-opt" />
|
||||
|
@ -392,7 +393,7 @@ EMSCRIPTEN_KEEPALIVE void mono_wasm_load_profiler_aot (const char *desc) { mono_
|
|||
</ItemGroup>
|
||||
|
||||
<MonoAOTCompiler
|
||||
CompilerBinaryPath="$(MonoAotCrossCompilerPath)"
|
||||
CompilerBinaryPath="$(_MonoAotCrossCompilerPath)"
|
||||
OutputDir="$(_WasmIntermediateOutputPath)"
|
||||
Mode="$(AOTMode)"
|
||||
OutputType="AsmOnly"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue