-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
feat: Build system analysis and improvements #2997
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
base: master
Are you sure you want to change the base?
feat: Build system analysis and improvements #2997
Conversation
…tion ---- Stride is a game engine that can support multiple platforms (Windows, Linux, MacOS, Android, iOS). Because of that, we have a complex build system with a lot of `.props` and `.targets` files, as well as multiple conditional properties. It has become some kind of mess and it is difficult to reason with the build. It adds a high barrier of entries for new contributors. Another difficulty is that our `.csproj` are non-standard and some tools and plugins (such as the C# DevKit) have a hard time understanding the structure. We want to analyze and document the build files and procedures, and later try to find ways to simplify and improve upon it. As a reference here is a typical command line to build the solution: ```ps1 msbuild build\stride.build -t:BuildWindows -m:1 -nr:false -v:m -p:StrideSkipUnitTests=true ``` Note: we use `msbuild` instead of `dotnet` because we have some C++/CLI projects that require it. Let's approach this in several stages: 1. document the current build system 2. document a few examples (esp. command lines) and the expected result (e.g. build a cross-platform binary, or build a windows-specific binary, etc.). 3. document a few proposals to improve in incremental stages For the purpose of this task, you can: 1. look online for guidance 2. use sub-agents to help tackle this huge endeavor Note: documentation will be located in build/docs.
|
Shouldnt this be dedicated in the docs repo ? |
---- Some command line examples mention using `dotnet build`. However, unless when building Core libraries, engine and editor requires the use of msbuild because of a few C++/CLI projects. This should be made clear in the documentation. Correct the command line examples throughout the documentation to use msbuild when required.
b9b6aad to
7439cef
Compare
|
Thank you @Kryptos-FR , this is indeed important. The most important part is the review part, which can be done only by those who understand Stride build process. It will be most likely you, xen2 and Eideren, maybe others. Once you do first round clean up, I can join and read and see if the docs make me understand the build process better 🤣. Probably, it needs to be here in this repo till it is in the good shape, so AI can easily access Stride source code if needed. Once we are happy with the content, we can move it here https://doc.stride3d.net/latest/en/contributors/engine/index.html, and merge/restructure it with the existing content, including this one https://doc.stride3d.net/latest/en/contributors/contribution-workflow/index.html |
|
|
||
| ### From macOS | ||
|
|
||
| macOS can build: |
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.
I'm not sure about that. Of course, you can RUN the project, but in order to build it, someone should make PR with built native dependencies.
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.
One of the few hallucinations the AI made. I'll have to tell it that currently only build from Windows is fully supported.
I'll wait for more review comments and then do another pass. Keep them coming :)
While we work on it, it is easier if it is in the main repo. Especially if we want to use AI to help us. |
PR Details
Our build system is complex and a high barrier of entry for contributors (old and new). The goal of this PR is to document how it currently works and to propose a few areas of improvements.
Claude Sonnet AI was used to create the initial documentation. Now we need to review it, fix any mistakes and decide how to move from there.
Note: the prompts used are documented in the commit messages.
Related Issue
#1129, stride3d/stride-docs#346
Types of changes
Checklist
I have added tests to cover my changes.All new and existing tests passed.I have built and run the editor to try this change out.