You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are temporarily using reflection to modify pipeline in SetupStep. This should be replaced by using cmd line arguments (--custom-step) and relevant msbuild parts or by using Pipeline API.
It is not clear yet whether the Pipeline API would be public. I would like to wait before redoing the temporary solution until later when it will be more clear whether we might need pipeline steps removal/replacement or not.
The text was updated successfully, but these errors were encountered:
Implements #4707
With .NET5 we are switching from XA linker implemented as msbuild task to ILLink tool with [custom steps](https://github.com/mono/linker/blob/master/docs/custom-steps.md) provided in an assembly.
The new assembly with our custom steps is named `Microsoft.Android.Sdk.ILLink` and the source code is located in `src/Microsoft.Android.Sdk.ILLink`. It is used during build by `ILLink` tool.
The initial support is already able to link and run simple XA and XA/XF samples.
Future work
* replace reflection usage in SetupStep #4709
* audit reflection usage in our code #4708
* add more customs steps - we are still missing MonoDroidMarkStep
Notes
* the Profile API is not available in the linker [public API](https://github.com/mono/linker/tree/master/src/linker/ref). we work around it by adding `src/Microsoft.Android.Sdk.ILLink/Profile.cs` with missing pieces.
* `TypeDefinition.GetMethods` extension method from `Mono.Tuner.MethodBodyRocks` is not public. It is very simple so we are inlining it.
* the ILLink is now enabled in `Release` configuration defaults.
* tests were updated to reference more packages, to not miss second level dependencies.
Initial results:
apkdiff output summary for HelloAndroid sample, comparing `Debug` and `Release` apk's
```
- 7,300 Davik executables -2.34% (of 311,436)
- 14,733,944 Assemblies -31.85% (of 46,265,064)
- 2,492,452 Shared libraries -11.43% (of 21,803,164)
- 15,528,456 Package size difference -28.70% (of 54,114,462)
```
Context:
* `_RunILLink` target https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ILLink.targets
* linker documentation https://github.com/mono/linker/tree/master/docs
Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
Co-authored-by: Jonathan Pryor <jonpryor@vt.edu>
Context: #4669
We are temporarily using reflection to modify pipeline in
SetupStep
. This should be replaced by using cmd line arguments (--custom-step
) and relevant msbuild parts or by using Pipeline API.It is not clear yet whether the Pipeline API would be public. I would like to wait before redoing the temporary solution until later when it will be more clear whether we might need pipeline steps removal/replacement or not.
The text was updated successfully, but these errors were encountered: