• Show log

    Commit

  • Hash : 669a53f3
    Author : yuangongji
    Date : 2019-07-10T00:30:12

    cmake: set library names to be the same as with autotools
    
    libtool has VERSION_INFO [1], cmake has SOVERSION/VERSION instead
    (although it has different format). Also libtool has RELEASE [2] while
    cmake do not have analog yet [3], hence manual symlinks should be
    created.
    
      [1]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
      [2]: https://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html
      [3]: https://gitlab.kitware.com/cmake/cmake/issues/17652
    
    Plus osx has compatibility_version/current_version dylib properties and
    cmake do not have separate properties for them [4], hence manual LINK_FLAGS.
    And also there INSTALL_NAME_DIR property which should be adjusted too.
    
      [4]: https://public.kitware.com/Bug/view.php?id=4383
    
    So after all changes, here is an example before/after for osx and linux:
    
      # osx
        # autotools
        .libs/libevent_pthreads-2.2.1.dylib
        .libs/libevent_pthreads.dylib -> libevent_pthreads-2.2.1.dylib
        /usr/local/lib/libevent_pthreads-2.2.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        # cmake
          # before patch
          lib/libevent_pthreads.2.2.0.dylib
          lib/libevent_pthreads.dylib -> libevent_pthreads.2.2.0.dylib
          @rpath/libevent_pthreads.2.2.0.dylib (compatibility version 2.2.0, current version 0.0.0)
          # after patch
          lib/libevent_pthreads-2.2.1.dylib
          lib/libevent_pthreads.dylib -> libevent_pthreads-2.2.1.dylib
          /vagrant/.cmake/inst/lib/libevent_pthreads-2.2.1.dylib (compatibility version 2.0.0, current version 2.0.0)
    
      # linux
        # autotools
        .libs/libevent_pthreads-2.2.so.1 -> libevent_pthreads-2.2.so.1.0.0
        .libs/libevent_pthreads-2.2.so.1.0.0
        .libs/libevent_pthreads.so -> libevent_pthreads-2.2.so.1.0.0
        # cmake
          # before patch
          lib/libevent_pthreads.so -> libevent_pthreads.so.2.2.0
          lib/libevent_pthreads.so.2.2.0
          # after patch
          lib/libevent_pthreads-2.2.so -> libevent_pthreads-2.2.so.1
          lib/libevent_pthreads-2.2.so.1 -> libevent_pthreads-2.2.so.1.0.0
          lib/libevent_pthreads-2.2.so.1.0.0
          lib/libevent_pthreads.so -> libevent_pthreads-2.2.so.1.0.0
    
    Closes: #838 (cherry-picked)
    Closes: #760