[Proj] Proj 4.9.1RC3 Released

Howard Butler howard at hobu.co
Sun Feb 22 17:55:43 EST 2015


> On Feb 21, 2015, at 6:10 PM, Charles Karney <charles.karney at sri.com> wrote:
> 
> 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.

Yes, the SOVERSION target properties set to match libtool is just fine. It's that there's also a CMake VERSION target property that causes a libproj.4.9.1.so link to be created as well. I assume we don't want that (it's different behavior than the libtool build).

Howard



More information about the Proj mailing list