lf-lang / lingo

Package manager and build tool for the Lingua Franca coordination language
BSD 2-Clause "Simplified" License
4 stars 1 forks source link

Rewrite of the backend interfaces #28

Closed oowekyala closed 1 year ago

oowekyala commented 1 year ago

This replaces the backend interface with BatchBackend. The difference is that we don't create one backend instance per app, instead backends are singleton that receive batches of apps with a command to execute. This allows batches to be parallelized. To implement graceful error handling I use a struct BatchBuildResults that allows basically creating a pipeline where every stage may fail.

I also clean up types we don't really need like LFCProperties and the lfc module.

This changes Lingo's output directory to be a target directory. That means if you build a CMake app you will have the following structure:

- src
- target
  - build
  - src-gen
  - include
  - ... 

It's easier that way to exclude the generated files with gitignore and such.