PointCloudLibrary / pcl

Point Cloud Library (PCL)
https://pointclouds.org/
Other
9.89k stars 4.61k forks source link

Remove possibility to change CMAKE_CXX_STANDARD #3252

Open SunBlack opened 5 years ago

SunBlack commented 5 years ago

2690 added

https://github.com/PointCloudLibrary/pcl/blob/a2bedc96e0b7d1a19a6e92ca9292afe009251ae5/CMakeLists.txt#L11

It is nice that we can switch C++14 and C++17, but we only support C++14, because we don't touch 3rd-Party code and with C++17 you get following error message:

/media/sf_pcl/surface/src/3rdparty/opennurbs/opennurbs_evaluate_nurbs.cpp:512:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  register double alpha0;
  ^~~~~~~~~
/media/sf_pcl/surface/src/3rdparty/opennurbs/opennurbs_evaluate_nurbs.cpp:513:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  register double alpha1;
...

So we remove the option to allow the user to change the standard, as we know, only C++14 works and nothing other.

taketwo commented 5 years ago

Let's just do s/register //g.

SunBlack commented 5 years ago

Or can we update OpenNURBS? There register is already removed:

https://github.com/mcneel/opennurbs/blob/b844466e88fcf5a42c9d6d526abb3dcc44f939b5/opennurbs_evaluate_nurbs.cpp#L519-L523

SergioRAgostinho commented 5 years ago

Right now, it doesn't bother anyone. Since the our goal of allowing the user to select the standard >= C++14 has not changed, I would leave it untouched. Once we finish the correcting the changes that will allow PCL to be compiled with C++17, this will be one less thing to do.

stale[bot] commented 4 years ago

Marking this as stale due to 30 days of inactivity. It will be closed in 7 days if no further activity occurs.

kunaltyagi commented 4 years ago

What about updating the 3rd party libs?

SunBlack commented 4 years ago

I don't know about the license of 3rd party libs, if we are allowed to do so. In general I would prefer to integrate them via CMake and remove the code from our repo - but most of the 3rd party libs are not really CMake conform :-(

SergioRAgostinho commented 4 years ago
  1. OpenNurbs: https://github.com/mcneel/opennurbs the project is still active, the license is something akin to MIT. When the code was added into our source tree it referred to the same organization. It would need some patching plus interest from the mother organization to modernize the build process.

  2. Poisson Reconstruction:

Then again, why care about surface reconstruction as a point cloud focused library. Dense meshes are for newbies. :D (sarcasm)

stale[bot] commented 4 years ago

Marking this as stale due to 30 days of inactivity. It will be closed in 7 days if no further activity occurs.

kunaltyagi commented 4 years ago

There's also metslib in recognition in 3rd party. https://github.com/coin-or/metslib

Should I close issue #605, which is caused when someone uses the external metslib instead so we can track the 3rd party migration in one place?

stale[bot] commented 4 years ago

Marking this as stale due to 30 days of inactivity. It will be closed in 7 days if no further activity occurs.