diff options
| author | Haibo Huang <hhb@google.com> | 2020-07-10 20:21:19 -0700 |
|---|---|---|
| committer | Haibo Huang <hhb@google.com> | 2020-07-10 20:21:19 -0700 |
| commit | f0077b80a031634c5c62cffa0a238923db77d45a (patch) | |
| tree | 53915fc3eafdda183ab94c84e85ad7d7107afc6a /cmake/AddEventLibrary.cmake | |
| parent | 66d97fce6163bdd40a7bd2324225021838f3f18c (diff) | |
| download | platform_external_libevent-f0077b80a031634c5c62cffa0a238923db77d45a.tar.gz platform_external_libevent-f0077b80a031634c5c62cffa0a238923db77d45a.tar.bz2 platform_external_libevent-f0077b80a031634c5c62cffa0a238923db77d45a.zip | |
Upgrade libevent to release-2.1.12-stableandroid-r-beta-3android-r-beta-2
Change-Id: Id26c13a4fc1e140627d8869de2b6e2929f8a2a7b
Diffstat (limited to 'cmake/AddEventLibrary.cmake')
| -rw-r--r-- | cmake/AddEventLibrary.cmake | 104 |
1 files changed, 67 insertions, 37 deletions
diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake index 352c86b..04f5837 100644 --- a/cmake/AddEventLibrary.cmake +++ b/cmake/AddEventLibrary.cmake @@ -35,6 +35,45 @@ macro(generate_pkgconfig LIB_NAME) ) endmacro() +# LIB_NAME maybe event_core, event_extra, event_openssl, event_pthreads or event. +# Targets whose LIB_NAME is not 'event' should be exported and installed. +macro(export_install_target TYPE LIB_NAME OUTER_INCLUDES) + if("${LIB_NAME}" STREQUAL "event") + install(TARGETS "${LIB_NAME}_${TYPE}" + LIBRARY DESTINATION "lib" COMPONENT lib + ARCHIVE DESTINATION "lib" COMPONENT lib + RUNTIME DESTINATION "lib" COMPONENT lib + COMPONENT dev + ) + else() + string(REPLACE "event_" "" PURE_NAME ${LIB_NAME}) + string(TOUPPER ${TYPE} UPPER_TYPE) + list(APPEND LIBEVENT_${UPPER_TYPE}_LIBRARIES "${PURE_NAME}") + set(OUTER_INCS) + if (NOT "${OUTER_INCLUDES}" STREQUAL "NONE") + set(OUTER_INCS ${OUTER_INCLUDES}) + endif() + target_include_directories("${LIB_NAME}_${TYPE}" + PUBLIC "$<INSTALL_INTERFACE:include>" + "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" + "$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>" + ${OUTER_INCS} + ) + set_target_properties("${LIB_NAME}_${TYPE}" PROPERTIES EXPORT_NAME ${PURE_NAME}) + export(TARGETS "${LIB_NAME}_${TYPE}" + NAMESPACE ${PROJECT_NAME}:: + FILE "${PROJECT_BINARY_DIR}/LibeventTargets-${TYPE}.cmake" + APPEND + ) + install(TARGETS "${LIB_NAME}_${TYPE}" + EXPORT LibeventTargets-${TYPE} + LIBRARY DESTINATION "lib" COMPONENT lib + ARCHIVE DESTINATION "lib" COMPONENT lib + RUNTIME DESTINATION "lib" COMPONENT lib + COMPONENT dev + ) + endif() +endmacro() # Global variables that it uses: # - EVENT_ABI_LIBVERSION @@ -44,8 +83,6 @@ endmacro() # - EVENT_PACKAGE_RELEASE # - CMAKE_THREAD_LIBS_INIT LIB_PLATFORM # - OPENSSL_LIBRARIES -# - HDR_PUBLIC -# - EVENT_INSTALL_INCLUDE_DIR # - EVENT_SHARED_FLAGS # - EVENT_LIBRARY_STATIC # - EVENT_LIBRARY_SHARED @@ -57,11 +94,13 @@ macro(add_event_library LIB_NAME) cmake_parse_arguments(LIB "" # Options "VERSION" # One val - "SOURCES;LIBRARIES" # Multi val + "SOURCES;LIBRARIES;INNER_LIBRARIES;OUTER_INCLUDES" # Multi val ${ARGN} ) - set(ADD_EVENT_LIBRARY_TARGETS) + if ("${LIB_OUTER_INCLUDES}" STREQUAL "") + set(LIB_OUTER_INCLUDES NONE) + endif() set(ADD_EVENT_LIBRARY_INTERFACE) if (${EVENT_LIBRARY_STATIC}) @@ -69,12 +108,17 @@ macro(add_event_library LIB_NAME) set_target_properties("${LIB_NAME}_static" PROPERTIES OUTPUT_NAME "${LIB_NAME}" CLEAN_DIRECT_OUTPUT 1) - set_target_properties( - "${LIB_NAME}_static" PROPERTIES - PUBLIC_HEADER "${HDR_PUBLIC}") - list(APPEND LIBEVENT_STATIC_LIBRARIES "${LIB_NAME}_static") - list(APPEND ADD_EVENT_LIBRARY_TARGETS "${LIB_NAME}_static") + if(LIB_INNER_LIBRARIES) + set(INNER_LIBRARIES "${LIB_INNER_LIBRARIES}_static") + endif() + target_link_libraries("${LIB_NAME}_static" + ${CMAKE_THREAD_LIBS_INIT} + ${LIB_PLATFORM} + ${INNER_LIBRARIES} + ${LIB_LIBRARIES}) + + export_install_target(static "${LIB_NAME}" "${LIB_OUTER_INCLUDES}") set(ADD_EVENT_LIBRARY_INTERFACE "${LIB_NAME}_static") endif() @@ -82,9 +126,13 @@ macro(add_event_library LIB_NAME) if (${EVENT_LIBRARY_SHARED}) add_library("${LIB_NAME}_shared" SHARED ${LIB_SOURCES}) + if(LIB_INNER_LIBRARIES) + set(INNER_LIBRARIES "${LIB_INNER_LIBRARIES}_shared") + endif() target_link_libraries("${LIB_NAME}_shared" ${CMAKE_THREAD_LIBS_INIT} ${LIB_PLATFORM} + ${INNER_LIBRARIES} ${LIB_LIBRARIES}) if (EVENT_SHARED_FLAGS) @@ -110,14 +158,10 @@ macro(add_event_library LIB_NAME) "${LIB_NAME}_shared" PROPERTIES OUTPUT_NAME "${LIB_NAME}-${EVENT_PACKAGE_RELEASE}" VERSION "${CURRENT_MINUS_AGE}.${EVENT_ABI_LIBVERSION_AGE}.${EVENT_ABI_LIBVERSION_REVISION}" - SOVERSION "${CURRENT_MINUS_AGE}") + SOVERSION "${CURRENT_MINUS_AGE}" + INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") endif() - set_target_properties( - "${LIB_NAME}_shared" PROPERTIES - PUBLIC_HEADER "${HDR_PUBLIC}" - CLEAN_DIRECT_OUTPUT 1) - if (NOT WIN32) set(LIB_LINK_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}") @@ -127,33 +171,19 @@ macro(add_event_library LIB_NAME) COMMAND ${CMAKE_COMMAND} -E create_symlink "$<TARGET_FILE_NAME:${LIB_NAME}_shared>" "${LIB_LINK_NAME}" - WORKING_DIRECTORY "lib") + WORKING_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") endif() - list(APPEND LIBEVENT_SHARED_LIBRARIES "${LIB_NAME}_shared") - list(APPEND ADD_EVENT_LIBRARY_TARGETS "${LIB_NAME}_shared") + export_install_target(shared "${LIB_NAME}" "${LIB_OUTER_INCLUDES}") set(ADD_EVENT_LIBRARY_INTERFACE "${LIB_NAME}_shared") - endif() - export(TARGETS ${ADD_EVENT_LIBRARY_TARGETS} - FILE "${PROJECT_BINARY_DIR}/LibeventTargets.cmake" - APPEND - ) - - install(TARGETS ${ADD_EVENT_LIBRARY_TARGETS} - EXPORT LibeventTargets - LIBRARY DESTINATION "lib" COMPONENT lib - ARCHIVE DESTINATION "lib" COMPONENT lib - RUNTIME DESTINATION "lib" COMPONENT lib - PUBLIC_HEADER DESTINATION "include/event2" - COMPONENT dev - ) - if (NOT WIN32 AND ${EVENT_LIBRARY_SHARED}) - install(FILES - "$<TARGET_FILE_DIR:${LIB_NAME}_shared>/${LIB_LINK_NAME}" - DESTINATION "lib" - COMPONENT lib) + if (NOT WIN32) + install(FILES + "$<TARGET_FILE_DIR:${LIB_NAME}_shared>/${LIB_LINK_NAME}" + DESTINATION "lib" + COMPONENT lib) + endif() endif() add_library(${LIB_NAME} INTERFACE) |
