Remove aggregating headers from legacy API.
Summary
Per #3288 (comment 441637528), remove aggregating headers.
There is not good guidance (for readers or for developer tools) what the appropriate (legacy) header to include is.
Aggregating-headers
- are redundant,
- clutter the
src/gromacs/CMakeLists.txt
, - complicate the discovery/resolution of public API documentation,
- create unnecessary friction in #3288
- result in including more headers than needed,
- slowing compilation, and
- creating false dependencies
- obscuring the actual scope of needed API visibility
For developers: Why is this important?
Simplify CMake and repository structure in preparation for resolving #3288.
Proposed fix
If the proposal is acceptable and reviewers are available, @eirrgang can volunteer to make the changes and submit an MR to remove
-
gromacs/analysisdata.h -
gromacs/options.h -
gromacs/selection.h -
gromacs/trajectoryanalysis.h
(Ref https://gitlab.com/gromacs/gromacs/-/blob/main/src/gromacs/CMakeLists.txt#L145)
There are also several other headers at the top level of src/gromacs/
that do not have a clear owner. I'll try to investigate those, as well.
The legacy API has been deprecated for a while, so I don't think we need a period of deprecation for the headers in question.
Note, though, that the module headers thus aggregated are mostly not in api/legacy
, being installed instead with local if(GMX_INSTALL_LEGACY_API) install(FILES...
blocks. We should consolidate (or eliminate) this scattered set of installations in conjunction with resolution of #3288, but I believe this is out of scope of the present issue.