Skip to content

Conversation

@Kryptos-FR
Copy link
Member

@Kryptos-FR Kryptos-FR commented Dec 6, 2025

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

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • 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.

@Kryptos-FR Kryptos-FR added enhancement New feature or request area-Build area-Doc Issues related to documentation and XML comments labels Dec 6, 2025
…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.
@Jklawreszuk
Copy link
Collaborator

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.
@Kryptos-FR Kryptos-FR force-pushed the feature/build-analysis-and-improvements branch from b9b6aad to 7439cef Compare December 6, 2025 15:38
@VaclavElias
Copy link
Contributor

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

@Kryptos-FR Kryptos-FR changed the title feta: Build system analysis and improvements feat: Build system analysis and improvements Dec 6, 2025

### From macOS

macOS can build:
Copy link
Collaborator

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.

Copy link
Member Author

@Kryptos-FR Kryptos-FR Dec 6, 2025

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 :)

@Kryptos-FR
Copy link
Member Author

Shouldnt this be dedicated in the docs repo ?

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-Build area-Doc Issues related to documentation and XML comments enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants