-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[dotnet] Compute _SdkIsSimulator and the trimmer configuration earlier in the build. #20431
[dotnet] Compute _SdkIsSimulator and the trimmer configuration earlier in the build. #20431
Conversation
…r in the build. We can determine whether we're building for the simulator or not as soon as we know the RuntimeIdentifier, so do that, and set _SdkIsSimulator accordingly. In legacy Xamarin we had to execute a target in order to compute _SdkIsSimulator (_DetectSdkLocations), but with this change we won't have to in .NET anymore, which makes it possible to simplify some logic. The first thing we do here is to also move the computation of the trimmer configuration to right after computing _SdkIsSimulator (because we only need to know three things to compute the default trimmer mode: the target platform + whether we're building for the simulator or not + the configuration, and those are all known at this point now). This will make it possible to stop suppressing trimmer warnings depending on the trimming mode in effect (we have to suppress (or decide not to) the warnings in the initial MSBuild evaluation phase, before any targets are executed, because the properties in question are read during the evaluation phase in .NET). Note that this PR is not changing any trimmer warnings, that will only happen in .NET 9.
💻 [PR Build] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
📚 [PR Build] Artifacts 📚Packages generatedView packagesPipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11) passed 💻✅ All tests on macOS M1 - Mac Big Sur (11) passed. Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
✅ API diff for current PR / commitLegacy Xamarin (No breaking changes)
NET (empty diffs)
✅ API diff vs stableLegacy Xamarin (No breaking changes).NET (No breaking changes)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
🚀 [CI Build] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 170 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
💻 [CI Build] Windows Integration Tests passed 💻✅ All Windows Integration Tests passed. Pipeline on Agent |
…and the trimmer configuration earlier in the build. (#20431)" This reverts commit b4b6ff9. It breaks Hot Reload: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2053707
…and the trimmer configuration earlier in the build. (#20431)" (#20961) This reverts commit b4b6ff9. It breaks Hot Reload: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2053707
We can determine whether we're building for the simulator or not as soon as we know
the RuntimeIdentifier, so do that, and set _SdkIsSimulator accordingly.
In legacy Xamarin we had to execute a target in order to compute _SdkIsSimulator
(_DetectSdkLocations), but with this change we won't have to in .NET anymore, which
makes it possible to simplify some logic.
The first thing we do here is to also move the computation of the trimmer configuration
to right after computing _SdkIsSimulator (because we only need to know three things
to compute the default trimmer mode: the target platform + whether we're building
for the simulator or not + the configuration, and those are all known at this point
now).
This will make it possible to stop suppressing trimmer warnings depending on the
trimming mode in effect (we have to suppress (or decide not to) the warnings in the
initial MSBuild evaluation phase, before any targets are executed, because the properties
in question are read during the evaluation phase in .NET). Note that this PR is not
changing any trimmer warnings, that will only happen in .NET 9.