Skip to content

Build projects in RAD Studio groupproj file using BuildInParallel of MSBuild

License

Notifications You must be signed in to change notification settings

ccy/msbuild.delphi.parallel

Repository files navigation

Introduction

RAD Studio using Microsoft's MSBuild to build projects (.dproj) in a project groups (.groupproj). However, the build scripts (CodeGear.*.Targets) doesn't utilize multi-core CPU to perform the task that may speed up the build process.

The intention of this project is to utilize multi-core CPU resources to build projects as fast as possible using with MSBuild scripts. The most crucial part is utilize BuildInParallel to perform the task.

Algorithms

Here are a summary of steps to perform the build in parallel:

  1. Enumerate available DCP files from RAD Studio library and stored in a list A.
  2. Enumerate all dproj files from project group (.groupproj) and it's reference packages (.DCP) and store in a list B.
  3. For each dproj in list B, remove DCP items if exists list A.
  4. Filter and enumerate dproj files in list B where it's DCP item is empty.
  5. Use MSBuild and BuildInParallel = "true" to build the filtered dproj files.
  6. Remove filtered dproj files from list B.
  7. Add filtered dproj files to list A.
  8. Repeat Step 3 to 7 until list B is empty.

Reference

I face problems when constructing the MSBuild scripts. Few issues and problems were answered and inspired by fellows from StackOverflow:

About

Build projects in RAD Studio groupproj file using BuildInParallel of MSBuild

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published