norlab-ulaval / libpointmatcher

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

Build fails with boost 1.85.0 #574

Closed boxanm closed 2 months ago

boxanm commented 3 months ago

I recently upgraded my brew packages, and as part of the upgrade, the previous version of boost was replaced with boost 1.85.0. Consequently, libpointmatcher build fails in several places, notably due to the boost::filesystem module.

Build log ```shell /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:363:74: error: no member named 'complete' in namespace 'boost::filesystem' throw runtime_error(string("Cannot open file ") + boost::filesystem::complete(fullPath).generic_string()); ~~~~~~~~~~~~~~~~~~~^ /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:378:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'? const string& ext(boost::filesystem::extension(path)); /Volumes/CaseSensitive/libpointmatcher/pointmatcher/IO.cpp:812:20: error: no type named 'extension' in namespace 'boost::filesystem'; did you mean 'exception'? const string& ext(boost::filesystem::extension(path)); ```

Interestingly, I found thatboost::filesystem::complete was deprecated already back in Boost 1_48_0, but the issue only emerged after the last update.

I think this might be a nice opportunity to replace boost with std since we are using C++17 anyway.