diff options
author | Eric St. John <ericstj@microsoft.com> | 2017-04-03 20:15:17 +0300 |
---|---|---|
committer | Eric St. John <ericstj@microsoft.com> | 2017-04-03 20:15:28 +0300 |
commit | c42fd5602476dc88fd0d677a23ed15e8592a91e9 (patch) | |
tree | ff41976789e1a223d5875b9d7720b05d58aaf2f2 /external/dir.proj | |
parent | 5c1fe2a022ba2f30e390c3cd8501919e3f4f4db5 (diff) |
Add ILLink to the build
This adds ILLink (a .NET Core build of the mono linker) to the build
tools and uses it to trim non-public unreachable IL and metadata from
our assemblies.
This is enabled by default for any assembly that is part of NETCore.App.
This can be disabled by setting ILLinkTrimAssembly=false.
In some cases ILLink may trim too much, for example a runtime
dependency via reflection on private or internal API.
If we cannot update ILLink to understand this dependency via heuristic
then we can manually "root" the private or internal API.
This is done by adding an XML file next to the project with the name
ILLinkTrim.xml that follows the format documented here:
https://github.com/mono/linker/blob/master/linker/README
Diffstat (limited to 'external/dir.proj')
-rw-r--r-- | external/dir.proj | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/external/dir.proj b/external/dir.proj index 8d1b033ca6..3912e6143f 100644 --- a/external/dir.proj +++ b/external/dir.proj @@ -15,6 +15,7 @@ <Project Include="portable\portable.depproj" /> <Project Include="uapaotredist/uapaotredist.depproj" /> <Project Include="ilasm/ilasm.depproj" /> + <Project Condition="'$(ILLinkTrimAssembly)' != 'false'" Include="ILLink/ILLink.depproj" /> </ItemGroup> <Import Project="../dir.traversal.targets" /> |