[Debian-med-packaging] How to make meson accept that `pkg-config --cflags ` has empty result in case only /usr/include is needed
Andreas Tille
tille at debian.org
Wed Sep 19 13:43:43 BST 2018
On Wed, Sep 12, 2018 at 08:06:44PM -0400, Sergio Durigan Junior wrote:
> > Good catch. Meanwhile I've added zlib1g-dev directly to Build-Depends
> > of this package and it turned out that also libhdf5-dev is needed
> > (including an according patch for meson.build. Unfortunately there are
> > remaining issues related to hdf5 lib:
> >
> > ...
> > c++ -Iblasr at sha -I. -I.. -I../ -I/usr/include/hdf5/serial -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -g -O2 -fdebug-prefix-map=/build/libblasr-5.3.1=. -fstack-protecto
> > In file included from ../hdf/HDFAtom.cpp:1:
> > ../hdf/HDFAtom.hpp: In member function ‘int HDFAtom<T>::Initialize(H5::H5File&, const string&, const string&)’:
> > ../hdf/HDFAtom.hpp:64:44: error: no matching function for call to ‘HDFGroup::Initialize(H5::H5File&, const string&)’
> > group.Initialize(hdfFile, groupName);
> > ^
> > In file included from ../hdf/HDFData.hpp:10,
> > from ../hdf/HDFAtom.hpp:12,
> > from ../hdf/HDFAtom.cpp:1:
> > ../hdf/HDFGroup.hpp:28:9: note: candidate: ‘int HDFGroup::Initialize(H5::Group&, std::__cxx11::string)’
> > int Initialize(H5::Group& fg, std::string groupName);
> > ^~~~~~~~~~
> > ../hdf/HDFGroup.hpp:28:9: note: no known conversion for argument 1 from ‘H5::H5File’ to ‘H5::Group&’
> > ../hdf/HDFGroup.hpp:30:9: note: candidate: ‘int HDFGroup::Initialize(HDFGroup&, std::__cxx11::string)’
> > int Initialize(HDFGroup& parentGroup, std::string groupName);
> > ^~~~~~~~~~
> > ../hdf/HDFGroup.hpp:30:9: note: no known conversion for argument 1 from ‘H5::H5File’ to ‘HDFGroup&’
> > ...
> >
> > Any idea how to fix this?
>
> This can't work. From the source code:
>
> class HDFGroup : public HDFAttributable
> {
> public:
> ...
>
> int Initialize(H5::Group& fg, std::string groupName);
>
> int Initialize(HDFGroup& parentGroup, std::string groupName);
>
> ...
> };
>
> But:
>
> template <typename T>
> class HDFAtom : public HDFData
> {
> public:
>
> ...
> int Initialize(H5::H5File &hdfFile, const std::string &groupName,
> const std::string &attributeName)
> {
> HDFGroup group;
> group.Initialize(hdfFile, groupName);
> attribute = group.group.openAttribute(attributeName.c_str());
> isInitialized = true;
> return 1;
> }
> ...
>
>
> The HDFAtom::Initialize above is calling "group.Initialize" passing an
> "H5::H5File&" as the first parameter, but there's no
> "H5Group::Initialize (H5::H5File&...)" method declared. This is a bug.
>
> The code is too cryptic for me understand what the correct solution is
> in this case. There are a few possibilities (creating a HDFFile first,
> iterating over the available groups, etc.), but I'm not sure.
>
> I'd report this upstream.
Thanks for your hint - I did so in
https://github.com/PacificBiosciences/blasr_libcpp/issues/166
Kind regards
Andreas.
--
http://fam-tille.de
More information about the Debian-med-packaging
mailing list