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 <[email protected]>
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 via email to