Project Configuration Update, master branch (2020.12.01.)
This is a long overdue update/cleanup of the CMake files that we generate for all the ATLAS projects using atlas_project(...)
. This code was largely unchanged since the earliest days of our CMake migration effort.
The single biggest change is that the generated configuration file now no longer makes a "deep copy" of the targets from the imported project (in order to set them up correctly for the build of the current project), but it rather sets up ALIAS targets for them with the appropriate names.
- https://cmake.org/cmake/help/v3.11/command/add_library.html#alias-libraries
- https://cmake.org/cmake/help/v3.11/command/add_executable.html
(Note that the feature was introduced with CMake 3.11, so this was really long overdue. Notice how the removed code mentions ROOTCORE_PROJECT(...)
. Since that code was written before I would've "officially" started with my CMake developments.
While at it, I also made the configuration file more modern-looking in general. Making use of CMake's CMakePackageConfigHelpers module for generating this configuration with as simple code on our side as possible.
At the same time removed the now completely defunct GaudiFunctions.cmake
module.
@fwinkl, we will need to properly test this before it would go in. As it will have the possibility of messing up the nightly in a serious way. After some more tests from my side, once this goes into the master branch, some independent tests from you will also make a lot of sense before we would tag this code change for atlas/athena.