Skip to content

Update to Externals Handling, master branch (2017.11.14.)

This is a sibling to: atlas/atlasexternals!176 (merged)

@leggett found out that we are not installing everything we should be, when installing the ATLAS offline software releases. We don't install the Range-v3 headers (or the cppgsl ones).

That's because Gaudi was/is looking for these headers in a very low-level way. Which does work for building Gaudi, but it makes this dependency on the LCG rangev3 and cppgsl RPM packages invisible to CMake.

The way that we handle RPM dependencies in the ATLAS configuration is that every find module of ours declares what RPM dependency needs to be set up for them. To be able to inject this behaviour into the logic of how Gaudi uses these two external packages, I had to introduce separate (and very simple) Findcppgsl.cmake and FindRangev3.cmake modules. Which we can then override in our "GAUDI_ATLAS style" builds with modules from atlas/atlasexternals.

I chose the Findcppgsl.cmake and FindRangev3.cmake names to be in sync with the names of the packages in the LCG releases. The name of the latter module could also be Findrangev3.cmake as much as I care, but I don't like using the plural "ranges" name if that's not how these headers are called anywhere else. As for Findcppgsl.cmake, since FindGSL.cmake is for the GNU Scientific Library, we do need to use a more distinctive name for that, and I liked the name used by LCG.

Merge request reports