Dictionary Developments, master branch (2017.04.26.)
Unfortunately the previous update to the dictionary generation code had one very unfortunate side effect. That the CI system became unable to handle it when a merge request introduces a new class for which a dictionary should be generated, and then reverts this change. The specific CMake issue causing the problems was discussed with the CMake developers on:
https://gitlab.kitware.com/cmake/cmake/issues/16830
The suggestion received from that discussion allowed me to modify the "Reflex" dictionary generator code to take header dependencies correctly into account, while also allowing for classes to appear/disappear in an incremental build friendly way.
Unfortunately, as we discussed with Pere on https://sft.its.cern.ch/jira/browse/ROOT-8764, it's not so simple to make the CINT dictionary generation make use of implicit dependencies correctly. So I decided to remove the "enhanced" dependency scanning for CINT dictionaries for the moment. These are less critical for our CI system at the moment anyway. (This update will have to be a big overhaul in how we use atlas_add_root_dictionary
in the whole athena repository.)
While I was modifying the code, I moved all file creation done by the dictionary code under the CMakeFiles
subdirectory in the build tree. To get us one step closer to maybe allowing for in-source builds at one point in the future.
I also removed the final mentions of the ${ATLAS_DEFINITIONS}
variable. Since it didn't get set in the code since a very long time by now.