Skip to content

Commit 209785d

Browse files
kotlarmilosCopilot
andauthored
Add --strip-il-bodies crossgen2 arg for Apple mobile RIDs (#54143)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 2bbd50d commit 209785d

2 files changed

Lines changed: 37 additions & 11 deletions

File tree

src/Tasks/Microsoft.NET.Build.Tasks/RunReadyToRunCompiler.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class RunReadyToRunCompiler : ToolTask
2323
public bool ShowCompilerWarnings { get; set; }
2424
public bool UseCrossgen2 { get; set; }
2525
public string Crossgen2ExtraCommandLineArgs { get; set; }
26+
public string Crossgen2CompositeExtraCommandLineArgs { get; set; }
2627
public ITaskItem[] Crossgen2PgoFiles { get; set; }
2728
public string Crossgen2ContainerFormat { get; set; }
2829

@@ -362,6 +363,17 @@ private string GenerateCrossgen2ResponseFile()
362363
}
363364
}
364365

366+
// Arguments that are only valid for full composite builds (e.g. --strip-il-bodies).
367+
// These arguments will not be applied to any assemblies that have been excluded from the composite image.
368+
if (_createCompositeImage && !_partialCompile
369+
&& !string.IsNullOrEmpty(Crossgen2CompositeExtraCommandLineArgs))
370+
{
371+
foreach (string extraArg in Crossgen2CompositeExtraCommandLineArgs.Split([';'], StringSplitOptions.RemoveEmptyEntries))
372+
{
373+
result.AppendLine(extraArg);
374+
}
375+
}
376+
365377
if (_partialCompile)
366378
{
367379
result.AppendLine("--partial");

src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.CrossGen.targets

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,26 @@ Copyright (c) .NET Foundation. All rights reserved.
3535
<PublishReadyToRunEmitSymbols Condition="'$(PublishReadyToRunEmitSymbols)' == '' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">false</PublishReadyToRunEmitSymbols>
3636
<PublishReadyToRunEmitSymbols Condition="'$(PublishReadyToRunEmitSymbols)' == '' and $(RuntimeIdentifier.StartsWith('osx-'))">false</PublishReadyToRunEmitSymbols>
3737

38-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('ios-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
39-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('tvos-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
40-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('iossimulator-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
41-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('tvossimulator-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
42-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
43-
44-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('ios-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
45-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('tvos-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
46-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('iossimulator-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
47-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('tvossimulator-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
48-
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' != 'false' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
38+
<PublishReadyToRunStripInliningInfo Condition="'$(PublishReadyToRunStripInliningInfo)' == '' and $(RuntimeIdentifier.StartsWith('ios-'))">true</PublishReadyToRunStripInliningInfo>
39+
<PublishReadyToRunStripInliningInfo Condition="'$(PublishReadyToRunStripInliningInfo)' == '' and $(RuntimeIdentifier.StartsWith('tvos-'))">true</PublishReadyToRunStripInliningInfo>
40+
<PublishReadyToRunStripInliningInfo Condition="'$(PublishReadyToRunStripInliningInfo)' == '' and $(RuntimeIdentifier.StartsWith('iossimulator-'))">true</PublishReadyToRunStripInliningInfo>
41+
<PublishReadyToRunStripInliningInfo Condition="'$(PublishReadyToRunStripInliningInfo)' == '' and $(RuntimeIdentifier.StartsWith('tvossimulator-'))">true</PublishReadyToRunStripInliningInfo>
42+
<PublishReadyToRunStripInliningInfo Condition="'$(PublishReadyToRunStripInliningInfo)' == '' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">true</PublishReadyToRunStripInliningInfo>
43+
44+
<PublishReadyToRunStripDebugInfo Condition="'$(PublishReadyToRunStripDebugInfo)' == '' and $(RuntimeIdentifier.StartsWith('ios-'))">true</PublishReadyToRunStripDebugInfo>
45+
<PublishReadyToRunStripDebugInfo Condition="'$(PublishReadyToRunStripDebugInfo)' == '' and $(RuntimeIdentifier.StartsWith('tvos-'))">true</PublishReadyToRunStripDebugInfo>
46+
<PublishReadyToRunStripDebugInfo Condition="'$(PublishReadyToRunStripDebugInfo)' == '' and $(RuntimeIdentifier.StartsWith('iossimulator-'))">true</PublishReadyToRunStripDebugInfo>
47+
<PublishReadyToRunStripDebugInfo Condition="'$(PublishReadyToRunStripDebugInfo)' == '' and $(RuntimeIdentifier.StartsWith('tvossimulator-'))">true</PublishReadyToRunStripDebugInfo>
48+
<PublishReadyToRunStripDebugInfo Condition="'$(PublishReadyToRunStripDebugInfo)' == '' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">true</PublishReadyToRunStripDebugInfo>
49+
50+
<PublishReadyToRunStripILBodies Condition="'$(PublishReadyToRunStripILBodies)' == '' and $(RuntimeIdentifier.StartsWith('ios-'))">true</PublishReadyToRunStripILBodies>
51+
<PublishReadyToRunStripILBodies Condition="'$(PublishReadyToRunStripILBodies)' == '' and $(RuntimeIdentifier.StartsWith('tvos-'))">true</PublishReadyToRunStripILBodies>
52+
<PublishReadyToRunStripILBodies Condition="'$(PublishReadyToRunStripILBodies)' == '' and $(RuntimeIdentifier.StartsWith('iossimulator-'))">true</PublishReadyToRunStripILBodies>
53+
<PublishReadyToRunStripILBodies Condition="'$(PublishReadyToRunStripILBodies)' == '' and $(RuntimeIdentifier.StartsWith('tvossimulator-'))">true</PublishReadyToRunStripILBodies>
54+
<PublishReadyToRunStripILBodies Condition="'$(PublishReadyToRunStripILBodies)' == '' and $(RuntimeIdentifier.StartsWith('maccatalyst-'))">true</PublishReadyToRunStripILBodies>
55+
56+
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripInliningInfo)' == 'true'">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-inlining-info</PublishReadyToRunCrossgen2ExtraArgs>
57+
<PublishReadyToRunCrossgen2ExtraArgs Condition="'$(PublishReadyToRunStripDebugInfo)' == 'true'">$(PublishReadyToRunCrossgen2ExtraArgs);--strip-debug-info</PublishReadyToRunCrossgen2ExtraArgs>
4958
</PropertyGroup>
5059

5160
<PropertyGroup>
@@ -469,6 +478,10 @@ Copyright (c) .NET Foundation. All rights reserved.
469478
<_ReadyToRunNativeObjectOutputs Include="@(_ReadyToRunFilesToPublish->WithMetadataValue('RequiresNativeLink', 'true'))" />
470479
<_ReadyToRunNativeObjectOutputs OutputPath="%(Identity)" />
471480
</ItemGroup>
481+
482+
<PropertyGroup Condition="'$(PublishReadyToRunStripILBodies)' == 'true' and '$(PublishReadyToRunComposite)' == 'true' and '@(PublishReadyToRunPartialAssemblies)' == '' and '@(PublishReadyToRunCompositeExclusions)' == ''">
483+
<PublishReadyToRunCrossgen2CompositeExtraArgs>$(PublishReadyToRunCrossgen2CompositeExtraArgs);--strip-il-bodies</PublishReadyToRunCrossgen2CompositeExtraArgs>
484+
</PropertyGroup>
472485
</Target>
473486

474487
<UsingTask Condition="'$(Crossgen2TasksOverriden)' != 'true'" TaskName="ResolveReadyToRunCompilers" AssemblyFile="$(CrossGenTasksPath)" />
@@ -505,6 +518,7 @@ Copyright (c) .NET Foundation. All rights reserved.
505518
Crossgen2PgoFiles="@(_ReadyToRunPgoFiles)"
506519
Crossgen2ContainerFormat="$(PublishReadyToRunContainerFormat)"
507520
Crossgen2ExtraCommandLineArgs="$(PublishReadyToRunCrossgen2ExtraArgs)"
521+
Crossgen2CompositeExtraCommandLineArgs="$(PublishReadyToRunCrossgen2CompositeExtraArgs)"
508522
ImplementationAssemblyReferences="@(_ReadyToRunAssembliesToReference)"
509523
ShowCompilerWarnings="$(PublishReadyToRunShowWarnings)"
510524
CompilationEntry="@(_ReadyToRunCompileList)"

0 commit comments

Comments
 (0)