[Proj] Proj 4.9.1RC3 Released

Charles Karney charles.karney at sri.com
Sat Feb 21 19:10:18 EST 2015


On 02/21/2015 04:31 PM, Howard Butler wrote:
>
>> On Feb 21, 2015, at 1:59 PM, Charles Karney <charles.karney at sri.com> wrote:
>>
>> This patch adds 3 files in the cmake directory.  The names need to be
>> added to EXTRA_DIST in cmake/Makefile.am, of course.  The files are
>>
>> CMakeLists.txt project-config.cmake.in project-config-version.cmake.in
>
> Was there a specific reason this patch puts back the project VERSION target properties that I removed in r2969 [1]?
>
> https://trac.osgeo.org/proj/changeset/2629/trunk/proj
>
> We didn't want this due to it creating SOVERSION and file version names that are misaligned with what the libtool stuff does.
>
> Howard
>

I'm explicitly trying to mimic the behavior of libtool here using the 2
versions that cmake offers.  Here's what the so libraries look like:

   autoconf

     lrwxrwxrwx.  libproj.so -> libproj.so.9.0.0
     lrwxrwxrwx.  libproj.so.9 -> libproj.so.9.0.0
     -rwxr-xr-x.  libproj.so.9.0.0

   cmake (before my patch)

     lrwxrwxrwx.  libproj.so -> libproj.so.9.0.0
     -rwxr-xr-x.  libproj.so.9.0.0

   cmake (with my patch)

     lrwxrwxrwx.  libproj.so -> libproj.so.9
     lrwxrwxrwx.  libproj.so.9 -> libproj.so.9.0.0
     -rwxr-xr-x.  libproj.so.9.0.0

There's some benefit in trying to keep the shared libraries consistent
between builds so that an executable can reliably find the necessary
shared libraries at runtime.

How do I know what numbers to put for the versions in CMakeLists.txt?  I
run the autoconf build and look at the resulting versions on the
installed libraries.

Incidentally, if I build an application linking against proj using
cmake, the shared library it looks for (after the patch) is
libproj.so.9.  This means that a later API-compatible version with bug
fixes can be installed as

     lrwxrwxrwx.  libproj.so -> libproj.so.9
     lrwxrwxrwx.  libproj.so.9 -> libproj.so.9.0.1
     -rwxr-xr-x.  libproj.so.9.0.0
     -rwxr-xr-x.  libproj.so.9.0.1

and the application automatically will switch to the new version.

However this isn't a big deal, and I can back out of this change if you
like.

   --Charles


More information about the Proj mailing list