[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Missing .inl files in libgeos++-dev package



Thank you for quick reply Sebastiaan,

There are two answers to your question.

1. Inlining function implementation often leads to significant performance improvement, particularly when applying a low cost transform (high relative cost of call overhead) on a large collection. This scenario is particularly common in applications that use libgeos (transforms on large set of points for example)

2. Due to the nature of open source, most of the time someone compiles some software it's not their own. This time I have been able to locate the line in CMake file that defined GEOS_INLINE flag and was able to take it out, but were this defined somewhere inside m4 file... Turns out the lib won't compile anyway since C++ headers for gdal are not included in libgdal-dev. At this point I gave up trying to use ubuntugis and switched to installing dependencies manually.

I have always assumed that installing lib<X>-dev package is roughly equivalent to compiling <X> from source, except more convenient. Well, this is not the case with GIS libraries, due to this practice of pruning some headers out. I'm sure there is some internal reason for doing this, but I just wanted to let you know that this makes compiling scientific software against pre-compiled debian packages next to impossible.

Regards,

Kirill


On Sat, Feb 22, 2020 at 9:32 AM Sebastiaan Couwenberg <sebastic@xs4all.nl> wrote:
On 2/21/20 10:59 PM, Kirill Kouzoubov wrote:
> Problem: C++ headers shipped with libgeos++-dev package do not include
> inline files. As a result one can not compile with -DGEOS_INLINE flag. My
> understanding is that it should be safe to compile with this flag set even
> if the library was compiled without the flag and hence includes object code
> for those functions as well.
>
> It looks like all versions are affected, so not sure if this is by design
> or an omission.

The files are explicitly not included in the package, see:

 https://sources.debian.org/src/geos/3.8.0-1/debian/rules/#L68

I don't understand why you'd need these files, just dynamically link the
library.

Kind Regards,

Bas

--
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1


Reply to: