# Copyright (c) 2010 High Performance Computing Center Stuttgart, # University of Stuttgart. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow # # $HEADER$ # # Only one libevent component should be used, selection is done by editing .windows in_use property. FILE(STRINGS ${CURRENT_PATH}/.windows IN_USE REGEX "^in_use=") STRING(REPLACE "in_use=" "" IN_USE ${IN_USE}) STRING(REGEX MATCH "libevent[0-9]+" libevent_dir "${CURRENT_PATH}") IF(${IN_USE} STREQUAL "0") SET(RESULT FALSE) ELSE(${IN_USE} STREQUAL "0") SET(LIBEVENT_FOUND TRUE CACHE INTERNAL "allow only one event mca.") MESSAGE(STATUS "configure libevent.") # set up event include directories. INCLUDE_DIRECTORIES ("${CURRENT_PATH}/libevent/compat" "${CURRENT_PATH}/libevent/WIN32-Code/" "${CURRENT_PATH}/libevent/include/" "${CURRENT_PATH}/libevent" "${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}/libevent/include/") SET(LIBEVENT_INCLUDE_DIRS ${CURRENT_PATH}/libevent/compat;${CURRENT_PATH}/libevent/WIN32-Code/;${CURRENT_PATH}/libevent/include/;${CURRENT_PATH}/libevent;${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}/libevent/include/ CACHE INTERNAL "the libevent dirs that have to be included on the top level.") IF(WIN32) # generating config.h # windows doesn't need this file, just make an empty one FILE(WRITE ${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}/libevent/include/config.h " /* config.h. Generated automatically by CMake. */ ") SET(RESULT_COMPONENT_FILES ${RESULT_COMPONENT_FILES} ${CURRENT_PATH}/${libevent_dir}_component.c ${CURRENT_PATH}/${libevent_dir}_module.c #system sources ${CURRENT_PATH}/libevent/win32select.c ${CURRENT_PATH}/libevent/evthread_win32.c ${CURRENT_PATH}/libevent/buffer_iocp.c ${CURRENT_PATH}/libevent/event_iocp.c ${CURRENT_PATH}/libevent/bufferevent_async.c #core sources ${CURRENT_PATH}/libevent/event.c ${CURRENT_PATH}/libevent/evthread.c ${CURRENT_PATH}/libevent/buffer.c ${CURRENT_PATH}/libevent/bufferevent.c ${CURRENT_PATH}/libevent/bufferevent_sock.c ${CURRENT_PATH}/libevent/bufferevent_filter.c ${CURRENT_PATH}/libevent/bufferevent_pair.c ${CURRENT_PATH}/libevent/listener.c ${CURRENT_PATH}/libevent/bufferevent_ratelim.c ${CURRENT_PATH}/libevent/evmap.c ${CURRENT_PATH}/libevent/log.c ${CURRENT_PATH}/libevent/evutil.c ${CURRENT_PATH}/libevent/evutil_rand.c ${CURRENT_PATH}/libevent/strlcpy.c ${CURRENT_PATH}/libevent/signal.c ${CURRENT_PATH}/libevent/event_tagging.c ) IF(WINDOWS_MINGW) SET_SOURCE_FILES_PROPERTIES(${CURRENT_PATH}/libevent/win32select.c ${CURRENT_PATH}/libevent/evthread_win32.c ${CURRENT_PATH}/libevent/buffer_iocp.c ${CURRENT_PATH}/libevent/bufferevent_async.c ${CURRENT_PATH}/libevent/event.c ${CURRENT_PATH}/libevent/evthread.c ${CURRENT_PATH}/libevent/bufferevent.c ${CURRENT_PATH}/libevent/bufferevent_sock.c ${CURRENT_PATH}/libevent/bufferevent_filter.c ${CURRENT_PATH}/libevent/bufferevent_pair.c ${CURRENT_PATH}/libevent/bufferevent_ratelim.c ${CURRENT_PATH}/libevent/evmap.c ${CURRENT_PATH}/libevent/log.c ${CURRENT_PATH}/libevent/evutil_rand.c ${CURRENT_PATH}/libevent/strlcpy.c ${CURRENT_PATH}/libevent/signal.c ${CURRENT_PATH}/libevent/event_tagging.c PROPERTIES COMPILE_FLAGS "-D intptr_t=int -D _INTPTR_T_DEFINED") SET(OBJ_PATH "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/libopen-pal.dir/mca/event/${libevent_dir}/libevent") SET(EVENT_OBJ_FILES "${OBJ_PATH}/*.obj" CACHE INTERNAL "event obj files") ELSEIF(WINDOWS_VS) SET(OBJ_PATH "${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}") # for generating the static library, as opal will not export event API any more. SET(EVENT_OBJ_FILES ${OBJ_PATH}/win32select.obj ${OBJ_PATH}/evthread_win32.obj ${OBJ_PATH}/buffer_iocp.obj ${OBJ_PATH}/event_iocp.obj ${OBJ_PATH}/bufferevent_async.obj ${OBJ_PATH}/event.obj ${OBJ_PATH}/evthread.obj ${OBJ_PATH}/buffer.obj ${OBJ_PATH}/bufferevent.obj ${OBJ_PATH}/bufferevent_sock.obj ${OBJ_PATH}/bufferevent_filter.obj ${OBJ_PATH}/bufferevent_pair.obj ${OBJ_PATH}/listener.obj ${OBJ_PATH}/bufferevent_ratelim.obj ${OBJ_PATH}/evmap.obj ${OBJ_PATH}/log.obj ${OBJ_PATH}/evutil.obj ${OBJ_PATH}/evutil_rand.obj ${OBJ_PATH}/strlcpy.obj ${OBJ_PATH}/signal.obj ${OBJ_PATH}/event_tagging.obj CACHE INTERNAL "event obj files") ENDIF(WINDOWS_MINGW) OMPI_DEF(OPAL_HAVE_WORKING_EVENTOPS 1 "Whether our event component has working event operations or not if not, then assumedly it only has working timers and signals)." 0 1) OMPI_DEF(MCA_event_IMPLEMENTATION_HEADER "${CURRENT_PATH}/${libevent_dir}.h" "Header to include for event implementation" 1 1) SET(LIBEVENT_CONFIG_DONE TRUE CACHE INTERNAL "Libevent config done.") ELSE(WIN32) SET(RESULT_COMPONENT_FILES ${RESULT_COMPONENT_FILES} ) ENDIF(WIN32) SET(RESULT TRUE) ENDIF(${IN_USE} STREQUAL "0")