Parallel Builds
EBuild allows for the option to parallelize build tasks, in order to make more efficient use of multi-core systems. Parallel builds optimize for build speed in exchange for build log readability.
By default, EBuild runs build tasks in sequential order. You can enable parallel builds in two ways:
- On the command line, specify the
--parallel
command line switch. - In Fire or Water, enable the "Parallel Builds" option in Preferences (on the Build tab).
EBuild will parallelize the following operations:
- In a multi-project solution, EBuild will try to build multiple projects at once, in parallel. Of course it will take into account project dependencies, and how well a solution can be parallelized depends on how inter-dependent the projects are.
- For multi-target projects, EBuild will run certain tasks in parallel for all (or some, depending on available CPU resources) targets.
Downsides/Drawbacks of Parallel Builds
Parallel builds optimize for build speed, but sacrifice some convenience in the process.
For command-line builds, EBuild will emit log messages as they occur (where necessary, prefixed with the project and/or target name). Because multiple projects and/or targets build at once, this means messages from different processing threads will intermix, leading to a log output that can be harder to be processed by a human reader. This is especially true for high-verbosity log output.
We recommend to turn off parallel builds when you need to diagnose a build log in more detail, beyond just acting on errors and warnings.
In Fire and Water, the Build Log will attempt to automatically resort incoming log messages according to project and/or target. This will result in a more readable output, but will cause new log messages to be inserted in various locations of the current log view, rather than at the end.
Also, for technical reasons, Fire and Water will not highlight error and warning messages in the log output for parallel builds, and will not allow double-clicking them in order to navigate to the source locations from the build log. (Of course error and warning messages are still highlighted in-line in the code editor, and available in the Jump Bar, as always.)
Again, we recommend turning of parallel builds when you need to work with the build log.
Supported Tasks
The following EBuild tasks currently support parallelization: