Don't build all executables by default
What
Currently, the executable targets that are built are a complete GLOB
of all those files matching src/tools/*.cpp
.
If one is not compiling for all target front-ends or controllers (since its rarely needed to do so and only slows compilation steps), then compilation will still fail regardless of whether or not the requested libX
's succeeded. This is because many of the executables are targetted to specific front-ends and/or controllers.
Proposal
Depending on the YARR_FRONT_ENDS_TO_BUILD and/or YARR_CONTROLLERS_TO_BUILD, prune the list of source files used to build the executable targets. Or simply build each target separately (likely grouped by front-end/controller), instead of doing a GLOB
over anything that matches *.cpp
.
In my experience the builds of the executable targets is the most time consuming part of the build process, so being able to using the YARR_FRONT_ENDS_TO_BUILD and/or YARR_CONTROLLERS_TO_BUILD fields properly would improve the build experience of YARR.