• Show log

    Commit

  • Hash : acfac7ae
    Author : Ingo Bauersachs
    Date : 2022-12-01T18:39:52

    Make dependency paths relocatable
    
    The generated configurations for both CMake and pkg-config included
    absolute paths to dependencies (OpenSSL, MbedTLS). This is contrary
    to the general CMake advise to create relocatable packages [1].
    
    Additionally, when building both mbedtls and libevent via CMake's
    FetchContent in the same project, loading the project would fail with
    
      INTERFACE_INCLUDE_DIRECTORIES property contains path:
        "/home/user/project/cmake-build/_deps/mbedtls-build/include"
      which is prefixed in the source directory.
    
    The required changes include:
    - Adding the outer includes only to the BUILD_INTERFACE solves the
      makes the CMake paths relocatable and thus solves the FetchContent
      problem.
    - Updates to libevent_*.pc.in fixes the relocatable issues for
      pkg-config and properly declares currently missing dependencies.
    - Using components for linking to OpenSSL (requiring CMake 3.4)
      and MbedTLS. The new MbedTLS target names now match the component
      names of the MbedTLS' CMake project.
    - Use the Threads CMake library reference instead of a direct
      reference to support both built-in pthread and -lpthread.
    
    v2 (azat): get back CMAKE_REQUIRED_LIBRARIES
    
    [1] https://cmake.org/cmake/help/v3.25/manual/cmake-packages.7.html#creating-relocatable-packages