[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