Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for reentrant qhull #4540

Merged
merged 16 commits into from
May 18, 2021

Conversation

al-tu
Copy link
Contributor

@al-tu al-tu commented Dec 10, 2020

non-reentrant qhull is deprecated
for me turned out to be the only way to deal with "undefined reference to 'qh_qh'" with any qhull/pcl build options combinations i tried
tested with qhull 8.0.2

related issues/PRs:
#1618
#1565

@kunaltyagi kunaltyagi linked an issue Dec 15, 2020 that may be closed by this pull request
@kunaltyagi kunaltyagi changed the title reentrant qhull support Add support for reentrant qhull Dec 15, 2020
@larshg
Copy link
Contributor

larshg commented Dec 20, 2020

I think this one can be merged, after ci 16.04 is removed.

@@ -9,14 +9,14 @@
# If QHULL_USE_STATIC is specified then look for static libraries ONLY else
# look for shared ones

set(QHULL_MAJOR_VERSION 6)
set(QHULL_MAJOR_VERSION 8)

if(QHULL_USE_STATIC)
set(QHULL_RELEASE_NAME qhullstatic)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be changed to qhullstatic_r (and below qhullstatic_r_d)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, thanks

@Tobias-Fischer
Copy link
Contributor

With the addition of the minor change above, I found this PR works nicely when building pcl on conda-forge: conda-forge/pcl-feedstock#30

@kunaltyagi kunaltyagi added the needs: testing Specify why not closed/merged yet label Apr 4, 2021
Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CMake along with the HAVE_QHULL_2011 flag needs to be looked at more deeply. Sadly, I'm not an active user of surface, and my testing will not be deeper than what the CI already does

The other changes LGTM (though I'm surprised only these few changes are needed)

@mvieth
Copy link
Member

mvieth commented Apr 4, 2021

@al-tu Could you delete these two lines so that our Ubuntu 20.10 check also runs the hull tests?

@larshg
Copy link
Contributor

larshg commented Apr 4, 2021

The CMake along with the HAVE_QHULL_2011 flag needs to be looked at more deeply. Sadly, I'm not an active user of surface, and my testing will not be deeper than what the CI already does

Some of this was discussed in #3741.

@kunaltyagi
Copy link
Member

Based on that discussion, the conditional statements for 2011 shouldn't be needed (since the lowest we support is 18.04)

@mvieth
Copy link
Member

mvieth commented Apr 18, 2021

@al-tu Are you still willing to work on this pull request so that we can hopefully merge it soon?

@al-tu
Copy link
Contributor Author

al-tu commented Apr 19, 2021

@al-tu Could you delete these two lines so that our Ubuntu 20.10 check also runs the hull tests?

done

@al-tu
Copy link
Contributor Author

al-tu commented Apr 20, 2021

build failed with "out of disk space" error on runner, should i just retry (i hope some rotation takes place in such cases)?

@mvieth
Copy link
Member

mvieth commented Apr 20, 2021

build failed with "out of disk space" error on runner, should i just retry (i hope some rotation takes place in such cases)?

I re-ran the failed test, that error happens from time to time, we don't have a solution for that yet.

cmake/Modules/FindQhull.cmake Outdated Show resolved Hide resolved
cmake/Modules/FindQhull.cmake Outdated Show resolved Hide resolved
cmake/Modules/FindQhull.cmake Outdated Show resolved Hide resolved
surface/include/pcl/surface/impl/convex_hull.hpp Outdated Show resolved Hide resolved
surface/include/pcl/surface/qhull.h Outdated Show resolved Hide resolved
Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All instances of qh macro and 2011 macro have been replaced :)

There are some instances where qh_* functions don't take a qh parameter (eg: concanve_hull.hpp, line 272), but I assume that's not an issue because the CI doesn't complain

PR LGTM otherwise (Will approve after some discussion)

Should we be changing our minimum versions supported after this PR?

@mvieth
Copy link
Member

mvieth commented May 11, 2021

Should we be changing our minimum versions supported after this PR?

Where do you mean? In the tutorials about compiling PCL or somewhere else?
The tutorials mention many outdated library versions, not only qhull but also Eigen, Boost, etc.

Copy link
Member

@kunaltyagi kunaltyagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, tutorials is quite outdated wrt claim of min version

@kunaltyagi kunaltyagi requested a review from mvieth May 17, 2021 12:41
Copy link
Member

@mvieth mvieth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @al-tu !

@mvieth mvieth merged commit b19c99a into PointCloudLibrary:master May 18, 2021
@al-tu al-tu deleted the reentrant-qhull-support branch July 28, 2021 22:30
mvieth pushed a commit to mvieth/pcl that referenced this pull request Dec 27, 2021
* using reentrant qhull by default, qhull calls edits

* using reentrant qhull by default, qhull calls edits

* using reentrant qhull by default, qhull calls edits

* cmake for qhull fix

* cmake for qhull fix

* static libs made reentrant as well

* turning surface tests on for 20.10

* typos fixes, using errfile for qh_zero second param

* removing HAVE_QHULL_2011 and assuming its always true

* removing QHULL_MAJOR_VERSION
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs: testing Specify why not closed/merged yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Failed to build PCL against recent **Qhull libqhull_r.so**
5 participants