How BuildSystem API is accessible for the clients


Correct me if I'm wrong here: it looks that if I want to use Build.BuildOperation build system, I get no useful information about the build progress, except the outputStream - that is not a very convenient way to convey meaningful information I'd say.

The BuildOperation.buildDelegate property is private, and it makes it impossible to use it to get meaningful notifications about the operation events. And this private BuildDelegate instance is where all the interesting things happen.

The only way I can think of now to work around it, is to implement another build system from scratch, however, it kinda defeats the purpose of BuildOperation API.

So, here I am asking if I'm missing anything important here before I work on to make this API a bit more accessible to the outside world (SwiftPM clients).

What I'm thinking about right now:

  • make the BuildOperation.buildDelegate public parameter - this way I could open and maybe use a subclass of BuildDelegate class.
  • introduce some kind of delegate protocol for BuildSystem that could be used by all build systems.



Sounds like a reasonable approach to me.

Terms of Service

Privacy Policy

Cookie Policy