(sorry for the late answer, I never received your last comment and only noticed it by chance on the web)

I was already about to upload a modified package, but did not manage to
do it before my vacation. Now thinking a bit more about the problem I'm
no longer sure the outlined solution is the correct one.

I am not certain either, but it seemed to make sense to me.

If GMPXX/MPFI/NTL support is enabled when building the library itself
(and hence defining CGAL_USE_GMPXX/MPFI/NTL in compiler_config.h), won't
every application using CGAL get a link dependency to these libraries
(assuming it includes a header with #ifdef CGAL_USE_GMPXX/MPFI/NTL)?

Only if it really uses it. And it should only use it if that's the best option. For instance, if you compute a Delaunay triangulation with the epick kernel, I don't think it picks up any dependency on any of those 3 libraries. (cmake might link with the whole world by default, or instead forget to link with mpfi, but that's a different issue)

For example, there is one example that does no longer build because of that (sorry, don't know the name anymore, but I think the module starts with "A").

Looks like a bug in the build scripts.

Isn't the correct solution to enable only support for those libraries
that affect the CGAL library itself, and to ask applications using CGAL
to add additional -DCGAL_USE_GMPXX/MPFI/NTL flags if they want to make
use of these features? (Basically the status quo.)

Then you could disable MPFR. Ah, no, GMP is needed for CORE, and cgal can't enable GMP without MPFR... But you could still disable GMP and MPFR after the fact, patching compiler_config.h so that it enables nothing.

It is a matter of compromise. Personally, I'd like to be able to compile a program that uses gmpxx without having to pass weird flags like -DCGAL_USE_GMPXX, -lgmpxx should be enough (and possibly not even needed if I don't do I/O, but then even if CGAL_USE_GMPXX is not defined, -lgmpxx may be needed for I/O on gmp types...). And if my program mysteriously becomes twice as slow because I somehow forgot to enable mpfi and cgal thus silently uses a work-around, that's not so good either. And gmpxx/mpfi are small when you are already linking with mpfr+gmp.

But I can understand people wanting to control the dependencies of their programs and not just notice in the end which random set of libraries was magically used.

So, your choice ;-)

--
Marc Glisse

PS (unrelated to this issue): it would be nice if you got a chance to start on the multi-arch transition, even if boost/qt prevent you from going all the way for now.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to