Skip to content
Draft
Changes from 1 commit
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
Prev Previous commit
Next Next commit
[dotnet] Exclude user assemblies from ReadyToRun compilation unless w…
…e're in Release.
  • Loading branch information
kotlarmilos authored and rolfbjarne committed Dec 12, 2025
commit 25da16c37190fb65e018620bbf69cd90d01c618b
23 changes: 23 additions & 0 deletions dotnet/targets/Microsoft.Sdk.R2R.targets
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,33 @@
<PropertyGroup Condition="'$(PublishReadyToRun)' == 'true' And '$(UseMonoRuntime)' == 'false' And '$(_UseNativeAot)' != 'true'">
<CreateR2RFramework Condition="'$(CreateR2RFramework)' == '' ">true</CreateR2RFramework>
<CreateR2RDylib Condition="'$(CreateR2RDylib)' == '' And '$(CreateR2RFramework)' != 'true'">true</CreateR2RDylib>

<FilterReadyToRunAssemblies Condition="'$(FilterReadyToRunAssemblies)' == '' And '$(Configuration)' == 'Release'">true</FilterReadyToRunAssemblies>

<!-- This shouldn't be necessary once we get https://github.com/dotnet/dotnet/pull/3754 -->
<PublishReadyToRunCrossgen2ExtraArgs>--obj-format:macho</PublishReadyToRunCrossgen2ExtraArgs>
</PropertyGroup>


<!-- Exclude user assemblies from R2R composite so they run interpreted for debugging -->
<Target Name="_SelectR2RAssemblies"
Condition="'$(FilterReadyToRunAssemblies)' == 'true'"
BeforeTargets="ResolveReadyToRunCompilers">
<ItemGroup>
<_ResolvedAssembliesToPublish Include="@(ResolvedFileToPublish)" Condition="'%(Extension)' == '.dll' And '%(ResolvedFileToPublish.Culture)' == '' And '%(ResolvedFileToPublish.DestinationSubDirectory)' == ''" />
<_NonUserAssemblies
Include="@(_ResolvedAssembliesToPublish)"
Condition="(
'%(_ResolvedAssembliesToPublish.NuGetPackageId)' == 'Microsoft.NETCore.App.Ref' Or
'%(_ResolvedAssembliesToPublish.NuGetPackageId)' == '$(_MonoNugetPackageId)' Or
'%(_ResolvedAssembliesToPublish.NuGetPackageId)' == '$(_XamarinNugetPackageId)' Or
'%(_ResolvedAssembliesToPublish.NuGetPackageId)' == '$(_XamarinNugetManagedPackageId)'
)" />
<_UserAsemblies Include="@(_ResolvedAssembliesToPublish)" Exclude="@(_NonUserAssemblies)" />
<PublishReadyToRunExcludeTest Include="@(_UserAsemblies -> '%(Filename)')" />
</ItemGroup>
</Target>

<!--
The following section is to create either a .dylib or a .framework from the Composite
ReadyToRun output (which is an object file, which must be linked into a dynamic library).
Expand Down