The non-reentrant version has been deprecated since qhull 2020.1, all users should switch to the reentrant libqhull. The reentrant version is available since qhull 2015.1.
The attached patch lets the code use the reentrant version.
(Instead of updating the homegrown FindQHULL.cmake, just using the cmake config provided by qhull upstream may be the better option).
Hi Stefan:
Sorry I missed your bug report and fix until now. I amended, comprehensively tested, and pushed your commit. See https://sourceforge.net/p/plplot/plplot/ci/b6023bf465e9b024d3b161ba52ef01a1aff3e901/ for details.
Hi Stefan:
In response to your suggestion of perhaps using a CMake find_package config mode file developed by upstream libqhull, I think that would be a good idea, but I could not find such upstream support for config mode. Am I missing something?
https://github.com/qhull/qhull/blob/master/CMakeLists.txt#L722
So something like ¨find_package(Qhull)", "target_link_libraries(... Qhull:qhull_r ....)" should be sufficient.
On 2021-07-06 12:07-0000 "Stefan Brüns" wrote:
Yeah, I am well aware of this nice target_link_libraries opportunity
if qhull-generated CMake config files are widely available (e.g., are
packaged for each software distribution that includes qhull). But
they are not. For example, Debian Stable does not include them
because they did not exist for that version, 2015.2-4, of qhull. But
from
https://packages.debian.org/bullseye/amd64/libqhull-dev/filelist
Debian Bullseye = Testing does include them (for libqhull version
2020.2-3). But the problem is those results are presumably version
dependent so I cannot import a local copy of one of those generated
versions into PLplot and have it serve for all versions of qhull.
A rule of thumb I use for version dependent software issues like this
is if Debian Stable provides a package for a particular version of
software, then all modern software distributions (including Linux
distributions, the Mac OS X distributions, and Cygwin and MSYS2)
usually provide that same version or later. So PLplot supports the
software versions that are in Debian Stable, but nothing older and
that assures fairly good compatibility with all other modern software
distributions.
In sum, thanks very much for this config mode idea, but because of the
above rule of thumb I will wait until the next release of Debian
(i.e., when Debian Bullseye become Stable) to implement it (which
should considerably simplify the qhull-related parts of our build
system).
On 2021-07-06 17:21-0000 Alan W. Irwin wrote:
Hmm. After considering this version issue some more, the fact is the next release
of PLplot will likely roughly coincide with the Bullseye release.
So my new plan for this development topic (in anticipation that libqhull-2020 or newer will be
widely available for most modern software distributions by the time
the next version of PLplot is released) is to do the following:
Build and install a local version of qhull-2020 to use for testing.
Convert the PLplot build system to use full config mode when finding the qhull package
and configuring the qhull-related parts of the build system using target_link_libraries.
When that development topic is pushed (hopefully within a day or so),
I will let you know here in case you want to test that improvement for
your own PLplot needs.
On 2021-07-06 19:40-0000 Alan W. Irwin wrote:
DONE. See https://sourceforge.net/p/plplot/plplot/ci/52479b8830ee02900b41fe3ec947aed6b1841a48/.
Please test that improvement for your own PLplot needs and report those test results here.