Edit

kc3-lang/libevent/test-export/CMakeLists.txt

Branch :

  • Show log

    Commit

  • Author : Ingo Bauersachs
    Date : 2022-12-01 18:39:52
    Hash : acfac7ae
    Message : 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

  • test-export/CMakeLists.txt
  • cmake_minimum_required(VERSION 3.4)
    if (POLICY CMP0074)
        cmake_policy(SET CMP0074 NEW)
    endif()
    list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake")
    project(verify)
    # set(CMAKE_VERBOSE_MAKEFILE 1)
    if(NOT ${EVENT__CODE_COMPONENT} STREQUAL "")
        string(TOUPPER ${EVENT__CODE_COMPONENT} _UPPER_COMPONENT)
    endif()
    find_package(Libevent 2.2.0 REQUIRED COMPONENTS ${EVENT__LINK_COMPONENT})
    add_definitions(-DEVENT_EXPORT_TEST_COMPONENT_${_UPPER_COMPONENT})
    add_executable(test-export test-export.c)
    target_link_libraries(test-export ${LIBEVENT_LIBRARIES})
    enable_testing()
    add_test(test-export test-export)