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.
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:It's easier that way to exclude the generated files with gitignore and such.