Skip to content

Acts CMake Fix(es), main branch (2024.02.07.)

These are some fixes for the CMake configuration of the Acts packages. Making sure that libraries would be set up with the correct types and contents, and that libraries would declare their dependencies correctly.

The whole thing was triggered by the bug in the configuration of ActsEventCnv. (Leading to sources in that package being compiled/linked into all clients linking against ActsEventCnvLib.) Then I set out to review the configuration of all packages under Tracking/Acts, but had to give up. 😦 I just found issues in all of them. 😦 So, let me rather give a recipe here for the main developers (@pagessin and @cvarni):

In order to figure out what "things" a given package depends on, I was executing commands like the following inside of the package:

grep -rh "^#include" * | sed -rn 's:#include ["<](.+)/.*:\1:p' | sort | uniq

For packages/libraries where the "public" and "private" dependencies matter, I would execute this command like:

grep -rh "^#include" ActsEvent/* | sed -rn 's:#include ["<](.+)/.*:\1:p' | sort | uniq
grep -rh "^#include" Root/* | sed -rn 's:#include ["<](.+)/.*:\1:p' | sort | uniq

, and then construct the library list from these outputs. 🤔 You guys should review the remaining packages as well.

Note that I can't guarantee that my updates don't break any downstream packages/libraries, so let's see what the CI says. (The configurations that I touched are now correct, but in CMake configurations two wrongs can sometimes make a right. So we'll see.)

Merge request reports