Skip to content

Allow for command-line specification of a targetted build

Daniel Joseph Antrim requested to merge dantrim_targeted_build into devel

What

This MR adds a few build configuration variables that allow one to enable more targeted builds.

Currently there are a few build configuration variables in src/CMakeLists.txt that define which libraries to build: YARR_FRONT_ENDS_TO_BUILD and YARR_CONTROLLERS_TO_BUILD. This MR provides an additional variable SELECT_LIBS, which is used to slim each of the YARR_*_TO_BUILD lists in an easier fashion.

For example, if our system is an Rd53a test stand relying on the Spec-type PCIe cards, this MR allows one configure their build as follows:

$ cmake3 -DSELECT_LIBS="Rd53a|Spec" ..
... # cut
Controllers to build:
- Spec
FrontEnds to build:
- Rd53a
... # cut

This is simpler than typing out,

$ cmake3 -DYARR_CONTROLLERS_TO_BUILD="Spec" -DYARR_FRONT_ENDS_TO_BUILD="Rd53a" ..

Additionally, this MR adds the SELECT_TOOLS configuration variable which will allow a user to easily trim down the list of built executables and therefore further reduce their compilation time. Much of the time a user only really needs to run scans and does not need to build all of the other unrelated tools. With the changes introduced in this MR, one can do:

$ cmake3 -DSELECT_TOOLS="scanConsole" ..
... # cut
Executeables to build:
- /home/YARR/src/tools/scanConsole.cpp
... # cut

Merge request reports