Clang C++17 Fixes, 21.2 branch (2019.08.21.)

Merged Attila Krasznahorkay requested to merge akraszna/athena:ClangCxx17Fixes-21.2-20190809 into 21.2

This will be fun to review... 😛

This update is to make it possible once again to build AnalysisBase and AnalysisTop on macOS. Ever since the build with "modern compilers" switched to C++17 mode for the analysis releases, those builds have been broken. 😦

First off the MR upgrades all projects to atlasexternals-1.0.55. This introduced the following updates (atlasexternals@1.0.54...1.0.55):

  • Made FastJet(Contrib) compile correctly in C++14/17 mode;
  • Upgraded to building LHAPDF 6.2.1;
  • Added FindHepMC3.cmake to AtlasLCG.

It's the first two out of these that are relevant for this MR. The update in FastJet is a very safe one, but for the LHAPDF update I'd like to ask @mvanadia and @smergelm whether they would see any issues with this. Since in the analysis releases the TopCorrections package is the main user of that external.

Then I had to make a good number of updates in this repository as well.

  • I had to make a lot of std::auto_ptr -> std::unique_ptr replacements. Since contrary to GCC, Clang doesn't allow using the old type in C++17 mode anymore. (As is the standard...)
  • I backported a fix in AthContainers from the master branch that was incompatible with "proper" C++17. Pinging @ssnyder on this one.
  • I had to introduce updates/fixes for TrigBunchCrossingTool that were not necessary even for the master branch so far... This latter was technically the most challenging part of the changes in this repository for this update.
  • While doing all of this, I also found a warning from FakeBkgTools. That was not preventing the build with Clang, but I thought I should fix it at the same time. Pinging @evarnes and @jmaurer on this last point...
Edited by Attila Krasznahorkay

Merge request reports