norlab-ulaval / libpointmatcher

An Iterative Closest Point (ICP) library for 2D and 3D mapping in Robotics
BSD 3-Clause "New" or "Revised" License
1.58k stars 542 forks source link

Update to newer yaml-cpp API #42

Open samlcharreyron opened 9 years ago

samlcharreyron commented 9 years ago

Yaml-cpp has a new API since version 0.5. Newer versions of Ubuntu now use yaml-cpp0.5 by default so libpointmatcher should be updated to use the new API.

lingerer commented 5 years ago

I try to use system yaml api and found the same problem.I check the code and I thought thie issue should solve.

aguenette commented 3 years ago

I am currently working on updating yaml-cpp to its new API. So far, I've managed to modify libpointmatcher's code to make it compile and work with it. There were only a few changes to be made. For now, it works with the following configurations:

yaml-cpp version Ubuntu version
0.5.2 Ubuntu 18.04.5
0.6.2 Ubuntu 20.04.1

As mentioned in the first post, the new yaml-cpp API is available since at least Ubuntu 16.04, i.e. version 0.5.2.

So, for Ubuntu users, it seems to me that it would be simpler to just use the system installed yaml-cpp.

Same thing for macOs users, it is possible to install version 0.6.3 with homebrew. So I don't think that would be a problem.

On the other hand, Windows users will have to install yaml-cpp from the source files. This is probably better for troubleshooting and debugging purposes.

Before creating a pull-request, I am asking for your thoughts about my proposal, which is to no longer provide the source code of yaml-cpp and let libpointmatcher users install or compile yaml-cpp version 0.5.2 and higher by themselves.

Thanks!

pomerlef commented 3 years ago

That's a though one. Adding the sources internally cuts us from external update so

@simonpierredeschenes and @YoshuaNava any thoughts from a CS perspective?

aguenette commented 3 years ago
* we loose bug updates, but
* the library doesn't break everytime the external dependence is updated
* we will have to deal with a spread of versions depending on the OS

If it can help make a decision, I would like to add that the new yaml-cpp API has been around for just over eight years now. So, knowing that it has not changed between versions 0.5.0 and 0.6.3, I think it might be possible to leave it up to the user to install a compatible version of yaml-cpp. What do you think?

pomerlef commented 3 years ago

alright, let's got with that then!