[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