Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • atlasexternals atlasexternals
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Jira
    • Jira
  • Merge requests 11
    • Merge requests 11
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Issue
    • Repository
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • atlas
  • atlasexternalsatlasexternals
  • Merge requests
  • !780

Project Configuration Update, master branch (2020.12.01.)

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Attila Krasznahorkay requested to merge akraszna/atlasexternals:ProjectConfigUpdate-master-20201201 into master Dec 01, 2020
  • Overview 9
  • Commits 4
  • Pipelines 5
  • Changes 4

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. 😛) I noticed yesterday while working on a different thing that CMake 3.18+ sets a couple of properties in our exported targets that the current/previous code was not copying. Exposing us to some nasty possible errors in the future.

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.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: ProjectConfigUpdate-master-20201201