Skip to content

Make Builds Run in Parallel#509

Merged
JeanPhilippeKernel merged 1 commit intoJeanPhilippeKernel:developfrom
MathewBensonCode:parallel
Mar 31, 2026
Merged

Make Builds Run in Parallel#509
JeanPhilippeKernel merged 1 commit intoJeanPhilippeKernel:developfrom
MathewBensonCode:parallel

Conversation

@MathewBensonCode
Copy link
Copy Markdown
Contributor

  • Use CMake's --parallel flag to allow MSVC and/or Apple based builds to work in parallel.
  • Ninja on Linux works in parallel by default and that is why its CI works alot faster.

- Use CMake's `--parallel` flag to allow MSVC based builds to work in
  parallel.
- Ninja on Linux works in parallel by default and that is why its CI
  works alot faster.
@JeanPhilippeKernel
Copy link
Copy Markdown
Owner

Should we not just extend support of ninja to Windows and Apple build?

Thanks for PR because it drags my attention to this (.... focusing on fixing the CommandManager threading issues) build time once again.
I was planning to create an issue to add support of ninja for both Windows and Apple builds

@JeanPhilippeKernel JeanPhilippeKernel added this to the Born baby (0.2.0) milestone Mar 25, 2026
@JeanPhilippeKernel JeanPhilippeKernel added enhancement New feature or request DevOps area-linux Work on Linux system area-window Work on Window system area-macOS Work on macOS system labels Mar 25, 2026
@JeanPhilippeKernel JeanPhilippeKernel moved this to In Progress in ZEngine Board Mar 25, 2026
@MathewBensonCode
Copy link
Copy Markdown
Contributor Author

I think ideally, now that we have moved a lot of the functionality into CMake, it may perhaps be better to try and make it so that we rely in the powershell even less. This way the user should be able to pick their generator of choice and just use CMake as they desire.

I had experimented with some CMake Presets using Ninja on windows so I could possibly add that for now. The CMake Preset method is actually very crucial for those who use VSCode.

Now that we are having newer and more up-to-date dependencies, we may need to reduce the CMake Options we are specifying in the CMake Preset File.

I actually use ninja on windows as well, but my reason is generally because of my workflow which needs the generation of the compile_commands.json file which is generated by the Ninja. I usually bypass the powershell file and just do the cmake generate and build commands. I don't think I pass any arguments and it actually builds fine.

@MathewBensonCode
Copy link
Copy Markdown
Contributor Author

So, I have been trying to see how to bring in Ninja to both Apple and Windows and it may need too much work with not so clear gains over the solution in this pull request.

In other words, even if we we're to pursue this, it will require a whole new pull-request as we may need to change the powershell script parameters, create new presets in the cmake-preset file, test and modify the CI builds, etc.

So for now I think it is better to merge this solution and have each system have its most native build system, but accelerated using the --parallel flag to handle all the internal complexities.

@JeanPhilippeKernel
Copy link
Copy Markdown
Owner

alright,
but let's create a task to track the ninja support investigation for new comers -

@JeanPhilippeKernel JeanPhilippeKernel merged commit 3e0a68b into JeanPhilippeKernel:develop Mar 31, 2026
21 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in ZEngine Board Mar 31, 2026
@MathewBensonCode MathewBensonCode deleted the parallel branch March 31, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-linux Work on Linux system area-macOS Work on macOS system area-window Work on Window system DevOps enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants