Skip to content

CMake/Externals Update, master branch (2019.04.12.)

At its core this MR is just updating the repository to atlasexternals-2.0.28 and providing all the updates in the code that are necessary for doing that.

But as you can see in atlasexternals@2.0.27...2.0.28, a lot has changed since the last tag...

  • I made a big overhaul in AtlasCMake, cleaning out some things that I wanted to do for about a year now;
  • The code learned how to produce static and "object" libraries with atlas_add_library(...), which is something that will be needed for ATLASSIM-3150;
  • Updated all the externals projects to use LCG_95 by default.

One of the changes in the new tag is that atlas_add_library(...) and atlas_add_executable(...) do a lot fewer "shady" stuff than they did before. For instance in the past practically everything got linked to the dl library all the time. This is no longer the case. So I had to update all clients in this repository that do need to be linked against that library, to explicitly do so using ${CMAKE_DL_LIBS}.

I also had to update some users of atlas_add_root_dictionary(...). In the past this function was doing some very fragile things to allow users to just pass a LinkDef.h file to the function, and let the function do everything else by itself. But I decided to stop with this. And require users to specify in the CMake file explicitly which headers they are generating a dictionary for.

Finally, I also updated the projects a bit to hide some of the CMake files into cmake/ subdirectories. Plus added project specific readme files to all of them, which would be used in the RPM files that will be produced from those projects from now on.

Edited by Attila Krasznahorkay

Merge request reports