-
-
Notifications
You must be signed in to change notification settings - Fork 379
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
Initial pass of adding .NET 6 support for sustaining #586
Changes from all commits
9f3091c
dfbd298
5eb603c
dd507ad
207a392
5672726
f58dbf0
bc38c2b
ba78646
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -54,13 +54,21 @@ In addition, the Silk.NET working group help drive larger user-facing changes pr | |
|
||
<h1 align="center">Building from source</h1> | ||
|
||
- Make sure you have at least the .NET 5 SDK installed, preferably with Visual Studio's .NET Framework and Xamarin workloads too. | ||
- Clone the repository | ||
- Run build.sh, build.cmd, build.ps1, or `nuke build`. To build for iOS and Android, add the `--feature-sets ios android` arguments. | ||
Prerequisites | ||
- **Must**: .NET 6 SDK | ||
- **Should**: Android (w/ AOT), iOS, and MAUI .NET 6 workloads (use `dotnet workload install android android-aot ios maui` to install them) | ||
- **Should**: Android SDK version 30 with NDK tools installed | ||
- **Could**: Java JDK (for gradle) | ||
- **Could**: Visual Studio 2019 Community version 16.10 or later | ||
|
||
Instructions | ||
- Clone the repository (recursively) | ||
- Run build.sh, build.cmd, build.ps1, or `nuke compile`. By default all packages targeting .NET Core, Standard, or .NET 6 are built. To build our older Xamarin iOS and Android packages, add the `--feature-sets legacy-ios legacy-android` arguments. | ||
- Use the DLLs. To get nupkgs you can use with NuGet instead, use `nuke pack`. | ||
|
||
There are more advanced build actions you can do too, such as FullBuild, Pack, FullPack, among others which you can view by doing `nuke --plan`. | ||
|
||
Some projects may not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you can still develop Silk.NET in a limited capacity but you will not be able to work on mobile workloads. | ||
The older Xamarin projects will not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (v16.10 or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you won't be able to build the older Xamarin packages. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there actually a Rider configuration that allows to build one project with MSBuild v16 and another with v17? .NET 6 needs MSBuild v17 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Rider can use desktop MSBuild if you configure it to. Why'd you ask? |
||
|
||
<h1 align="center">Contributing</h1> | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we not want to matrix this and have separate CI for core, new Android, old Android, new IOS and old IOS?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given we're multitargeting we need all of them in any case. We'd need to do lots of build hacking to get each buildable separately and it also would just massively complicate the workflow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also it turns out it's not that slow, it only takes 2 minutes. The runners clearly have very good internet connection.