'HDF5 can be queried for the following parameters:
- "hl": high-level interface
- "cxx": C++ APIs
- "fortran": Fortran APIs
:return: list of matching libraries'

@property
def libs(self):

    query_parameters = self.spec.last_query.extra_parameters
    shared = ('+shared' in self.spec)
    query2libraries = {tuple(): ['libhdf5'], ('cxx', 'fortran', 'hl'): ['libhdf5hl_fortran', 'libhdf5_hl_cpp', 'libhdf5_hl', 'libhdf5_fortran', 'libhdf5'], ('cxx', 'hl'): ['libhdf5_hl_cpp', 'libhdf5_hl', 'libhdf5'], ('fortran', 'hl'): ['libhdf5hl_fortran', 'libhdf5_hl', 'libhdf5_fortran', 'libhdf5'], ('hl',): ['libhdf5_hl', 'libhdf5'], ('cxx', 'fortran'): ['libhdf5_fortran', 'libhdf5_cpp', 'libhdf5'], ('cxx',): ['libhdf5_cpp', 'libhdf5'], ('fortran',): ['libhdf5_fortran', 'libhdf5']}
    key = tuple(sorted(query_parameters))
    libraries = query2libraries[key]
    return find_libraries(libraries, root=self.prefix, shared=shared, recurse=True)
