Open sebastic opened 5 years ago
I am far from an expert (just a maintainer of a Debian derivative who ran into this build failure) but here is my interpretation of what is going on.
mapbox::geometry::geometry is a "variant" type which can be one of a variety of subtypes.
There is an implementation of encode_geometry_pbf that takes said variant and uses some template magic to look up the type stored in the variant and dispatch it to the correct implementation.
It looks like a new type "empty" was added to the list of types supported by the variant. When the template magic trys to generate the dispatch for the variant the compiler fails to find the routine to dispatch to, for reasons I don't fully understand it considers this as "ambiguous" rather than "no match".
The fix would seem to be to add an implementation of encode_geometry_pbf for mapbox::geometry::empty . From reading the existing "multi point" implementation I belive this implementation should simply return false, but I am far from an expert.
Hmm, since Travis passes mostly fine (and it builds using clang), I think this might be a gcc-only problem?
what version of mapnik-vector-tile are you testing with? It looks like this has been fixed (with a more aggressive patch than the one I used) in the master branch of mapnik-vector-tile ( https://github.com/mapbox/mapnik-vector-tile/commit/29fae7a166861e74d03d8e23a5622c70db14ab95 ) , though there don't seem to have been any releases since.
Actually, no, clang++
fails the same way. :(
I'm building 3fecdfa88189ba00d4ac6a2600822c5ad3f3f5d5 from source in a Docker container.
I just wonder how Travis seems to pass alright with the current master
...
Ah, this might be the thing:
If building against an external Mapnik please know that Mapnik Vector Tile does not currently support Mapnik 3.1.x.
I'm currently on Mapnik master
too, which identifies itself as 4.x.
As reported by Matthias Klose in Debian Bug #913708:
It looks like geometry.hpp 1.0.0 caused this issue.