Advertisement
twokay

cmake externalproject interface library

Jan 27th, 2025
371
0
153 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 1.45 KB | None | 0 0
  1. # $ROOT/external/libevent/CMakeLists.txt
  2. cmake_minimum_required(VERSION 3.24)
  3. include(ExternalProject)
  4. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
  5.  
  6. ExternalProject_Add(libevent_externalproject
  7.         GIT_REPOSITORY https://github.com/libevent/libevent.git
  8.         GIT_TAG master
  9.         GIT_SHALLOW ON
  10.         SOURCE_DIR  ${CMAKE_SOURCE_DIR}/external/libevent/source
  11.         BINARY_DIR ${CMAKE_SOURCE_DIR}/external/libevent/bin
  12.         CONFIGURE_COMMAND ${CMAKE_COMMAND} ../source -DCMAKE_BUILD_TYPE=Release
  13.         BUILD_COMMAND ${CMAKE_COMMAND} --build .
  14.         INSTALL_COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/external/boringssl/prefix/source/include ${CMAKE_SOURCE_DIR}/external/boringssl/prefix/bin/
  15.         TEST_COMMAND ""
  16.         USES_TERMINAL_DOWNLOAD true
  17.         USES_TERMINAL_UPDATE true
  18.         USES_TERMINAL_PATCH true
  19.         USES_TERMINAL_CONFIGURE true
  20.         USES_TERMINAL_BUILD true
  21.         USES_TERMINAL_INSTALL true
  22.         USES_TERMINAL_TEST true
  23. )
  24. ExternalProject_Get_Property(boringssl_externalproject SOURCE_DIR)
  25. ExternalProject_Get_Property(boringssl_externalproject BINARY_DIR)
  26. set(LIBEVENT_INCLUDE  ${SOURCE_DIR}/include PARENT_SCOPE)
  27. set(LIBEVENT_LIBRARY  ${SOURCE_DIR}/build/libssl.a PARENT_SCOPE)
  28. add_library(libevent INTERFACE)
  29. target_include_directories(libevent INTERFACE ${SOURCE_DIR}/src/include)
  30. target_link_libraries(libevent INTERFACE ${SOURCE_DIR}/build/libevent.a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement