Use native CMake mechanism for find_package(GROMACS)
Instead of various detection stuff that only worked well in the presence
of pkg-config, use native CMake mechanisms: package configuration files
and automatic export of library import definitions. Include
directories and preprocessor macros influencing the installed headers
are still propagated separately. The new mechanism also works for
arbitrary suffixes, and is relocatable (as long as external libraries
that GROMACS links against are not moved). A simple FindGROMACS.cmake
is still there to hide some of the complexity to support multiple
suffixes, but it is not strictly necessary if the using code wants to do
those slightly more complex find_package() invocations directly.
Generalize the machinery that populated libgromacs.pc to use it also for
this purpose.
TODO for later (requires changes that are better done outside this
patch):
- Improve the versioning logic
The machinery and its current limitations are documented in the Doxygen
page on using GROMACS as a library. Some of these could possibly be
improved with additional effort, but the current approach is hopefully a
reasonable compromise between usability, robustness, and complexity.
Closes #1430, #1554
Change-Id: I49c50375a5abebfe8614704c175e6ed22c9daa56
17 files changed: