This patch will create new files that add CMake support.
This build is only tested on Windows.

--- CMakeLists.txt.ORIG	2013-04-04 14:24:30.033093000 +0200
+++ CMakeLists.txt	2013-04-04 09:48:35.660985000 +0200
@@ -0,0 +1,275 @@
+PROJECT(libevent C)
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+SET(LIBEVENT_VERSION "2.0.21-stable")
+SET(LIBEVENT_NUMERIC_VERSION "0x02001500")
+
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckTypeSize)
+
+# ----------------------------------------------------------------------
+# Check for everything in config.h.cmake
+# ----------------------------------------------------------------------
+
+CHECK_INCLUDE_FILES(arpa/inet.h  HAVE_ARPA_INET_H)
+CHECK_INCLUDE_FILES(dlfcn.h      HAVE_DLFCN_H)
+CHECK_INCLUDE_FILES(fcntl.h      HAVE_FCNTL_H)
+CHECK_INCLUDE_FILES(inttypes.h   HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILES(memory.h     HAVE_MEMORY_H)
+CHECK_INCLUDE_FILES(netdb.h      HAVE_NETDB_H)
+CHECK_INCLUDE_FILES(netinet/in6.h HAVE_NETINET_IN6_H)
+CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H)
+CHECK_INCLUDE_FILES(openssl/bio.h HAVE_OPENSSL_BIO_H)
+CHECK_INCLUDE_FILES(poll.h       HAVE_POLL_H)
+CHECK_INCLUDE_FILES(port.h       HAVE_PORT_H)
+CHECK_INCLUDE_FILES(stdarg.h     HAVE_STDARG_H)
+CHECK_INCLUDE_FILES(stddef.h     HAVE_STDDEF_H)
+CHECK_INCLUDE_FILES(stdint.h     HAVE_STDINT_H)
+CHECK_INCLUDE_FILES(stdlib.h     HAVE_STDLIB_H)
+CHECK_INCLUDE_FILES(strings.h    HAVE_STRINGS_H)
+CHECK_INCLUDE_FILES(string.h     HAVE_STRING_H)
+CHECK_INCLUDE_FILES(sys/devpoll.h HAVE_SYS_DEVPOLL_H)
+CHECK_INCLUDE_FILES(sys/epoll.h  HAVE_SYS_EPOLL_H)
+CHECK_INCLUDE_FILES(sys/eventfd.h HAVE_SYS_EVENTFD_H)
+CHECK_INCLUDE_FILES(sys/event.h  HAVE_SYS_EVENT_H)
+CHECK_INCLUDE_FILES(sys/ioctl.h  HAVE_SYS_IOCTL_H)
+CHECK_INCLUDE_FILES(sys/mman.h   HAVE_SYS_MMAN_H)
+CHECK_INCLUDE_FILES(sys/param.h  HAVE_SYS_PARAM_H)
+CHECK_INCLUDE_FILES(sys/queue.h  HAVE_SYS_QUEUE_H)
+CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H)
+CHECK_INCLUDE_FILES(sys/sendfile.h HAVE_SYS_SENDFILE_H)
+CHECK_INCLUDE_FILES(sys/socket.h HAVE_SYS_SOCKET_H)
+CHECK_INCLUDE_FILES(sys/stat.h   HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILES(sys/sysctl.h HAVE_SYS_SYSCTL_H)
+CHECK_INCLUDE_FILES(sys/time.h   HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILES(sys/types.h  HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILES(sys/uio.h    HAVE_SYS_UIO_H)
+CHECK_INCLUDE_FILES(sys/wait.h   HAVE_SYS_WAIT_H)
+CHECK_INCLUDE_FILES(unistd.h     HAVE_UNISTD_H)
+CHECK_INCLUDE_FILES(zlib.h       HAVE_ZLIB_H)
+CHECK_INCLUDE_FILES(signal.h     HAVE_SIGNAL_H)
+
+CHECK_FUNCTION_EXISTS(poll       HAVE_POLL)
+CHECK_FUNCTION_EXISTS(select     HAVE_SELECT)
+CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
+CHECK_FUNCTION_EXISTS(vasprintf  HAVE_VASPRINTF)
+CHECK_FUNCTION_EXISTS(fcntl      HAVE_FCNTL)
+CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
+CHECK_FUNCTION_EXISTS(strtok_r   HAVE_STRTOK_R)
+CHECK_FUNCTION_EXISTS(strtoll    HAVE_STRTOLL)
+CHECK_FUNCTION_EXISTS(strsep     HAVE_STRSEP)
+CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO)
+CHECK_FUNCTION_EXISTS(getnameinfo HAVE_GETNAMEINFO)
+CHECK_FUNCTION_EXISTS(strlcpy    HAVE_STRLCPY)
+CHECK_FUNCTION_EXISTS(inet_ntop  HAVE_INET_NTOP)
+CHECK_FUNCTION_EXISTS(sigtimedwait HAVE_SIGTIMEDWAIT)
+CHECK_FUNCTION_EXISTS(epoll_ctl  HAVE_EPOLL)
+CHECK_FUNCTION_EXISTS(kqueue     HAVE_KQUEUE)
+CHECK_FUNCTION_EXISTS(timeradd     HAVE_TIMERADD)
+CHECK_FUNCTION_EXISTS(timersub     HAVE_TIMERSUB)
+CHECK_FUNCTION_EXISTS(timerclear   HAVE_TIMERCLEAR)
+CHECK_FUNCTION_EXISTS(timerisset   HAVE_TIMERISSET)
+CHECK_TYPE_SIZE(int SIZEOF_INT)
+CHECK_TYPE_SIZE(long SIZEOF_LONG)
+CHECK_TYPE_SIZE("long long" SIZEOF_LONG_LONG)
+CHECK_TYPE_SIZE("size_t"    SIZEOF_SIZE_T)
+CHECK_TYPE_SIZE("ssize_t"   SIZEOF_SSIZE_T)
+CHECK_TYPE_SIZE("uint64_t"  SIZEOF_UINT64_T)
+CHECK_TYPE_SIZE("uint32_t"  SIZEOF_UINT32_T)
+CHECK_TYPE_SIZE("uint16_t"  SIZEOF_UINT16_T)
+CHECK_TYPE_SIZE("uint8_t"   SIZEOF_UINT8_T)
+CHECK_TYPE_SIZE("uintptr_t" SIZEOF_UINTPTR_T)
+CHECK_TYPE_SIZE("intptr_t"  SIZEOF_INTPTR_T)
+
+IF(HAVE_SIZEOF_UINT64_T)
+  SET(HAVE_UINT64_T 1)
+ENDIF()
+IF(HAVE_SIZEOF_UINT32_T)
+  SET(HAVE_UINT32_T 1)
+ENDIF()
+IF(HAVE_SIZEOF_UINT16_T)
+  SET(HAVE_UINT16_T 1)
+ENDIF()
+IF(HAVE_SIZEOF_UINT8_T)
+  SET(HAVE_UINT8_T 1)
+ENDIF()
+IF(HAVE_SIZEOF_UINTPTR_T AND HAVE_SIZEOF_INTPTR_T)
+  SET(HAVE_UINTPTR_T 1)
+ENDIF()
+IF(NOT HAVE_SIZEOF_SSIZE_T)
+  SET(ssize_t int)
+ENDIF()
+
+SET(HAVE_STRUCT_SOCKADDR_STORAGE 1)
+SET(HAVE_STRUCT_IN6_ADDR 1)
+SET(HAVE_STRUCT_SOCKADDR_IN6 1)
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
+               ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+# ----------------------------------------------------------------------
+# Create "libevent.pc"
+# ----------------------------------------------------------------------
+
+# Installation paths
+SET(prefix      "${CMAKE_INSTALL_PREFIX}")
+SET(exec_prefix "\${prefix}")
+SET(includedir  "\${prefix}/include")
+SET(libdir      "\${exec_prefix}/lib")
+SET(VERSION     "${LIBEVENT_VERSION}")
+SET(LIBS        "")  # Libs.private: @LIBS@
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libevent.pc.in
+               ${CMAKE_CURRENT_BINARY_DIR}/libevent.pc)
+
+INSTALL(FILES
+	${CMAKE_CURRENT_BINARY_DIR}/libevent.pc
+	DESTINATION lib/pkgconfig
+)
+
+# ----------------------------------------------------------------------
+# Create "event-config.h" from "config.h", in effect emulating the SED
+# script "make-event-config.sed"
+# ----------------------------------------------------------------------
+
+# Read all of the file, and create an empty file for output
+SET(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/event2/event-config.h)
+FILE(READ  ${CMAKE_CURRENT_BINARY_DIR}/config.h CONTENTS)
+FILE(WRITE ${OUTPUT} "")
+
+SET(EMPTY_LINE_MARKER "xxxxxxxxxxxxxxxxxxxxxxxx")
+STRING(REGEX REPLACE ";" "\\\\;" CONTENTS "${CONTENTS}")
+STRING(REGEX REPLACE "\n\n" ";${EMPTY_LINE_MARKER};" CONTENTS "${CONTENTS}")
+STRING(REGEX REPLACE "\n" ";" CONTENTS "${CONTENTS}")
+
+FOREACH(LINE ${CONTENTS})
+  STRING(REGEX REPLACE "#define  *" "#define _EVENT_" LINE "${LINE}")
+  STRING(REGEX REPLACE "#undef  *"  "#undef _EVENT_"  LINE "${LINE}")
+  STRING(REGEX REPLACE "#ifndef  *" "#ifndef _EVENT_" LINE "${LINE}")
+  STRING(REGEX REPLACE "#ifdef  *"  "#ifdef _EVENT_"  LINE "${LINE}")
+  # Change back from empty line marker to empty line
+  STRING(REGEX REPLACE "${EMPTY_LINE_MARKER}" "" LINE "${LINE}")
+  FILE(APPEND ${OUTPUT} "${LINE}\n")
+ENDFOREACH()
+
+# ----------------------------------------------------------------------
+# Add command line defines
+# ----------------------------------------------------------------------
+
+ADD_DEFINITIONS(-DHAVE_CONFIG_H)
+
+IF(WIN32)
+  ADD_DEFINITIONS(-D__func__=__FUNCTION__)
+  ADD_DEFINITIONS(-Dinline=__inline)
+  ADD_DEFINITIONS(-DBUILD_EVENT_DLL)
+  ADD_DEFINITIONS(-D_BIND_TO_CURRENT_MFC_VERSION=1 -D_BIND_TO_CURRENT_CRT_VERSION=1)
+  ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE)
+  ADD_DEFINITIONS(/wd4005)
+ENDIF()
+
+# ----------------------------------------------------------------------
+# Set include paths, specify what to build
+# ----------------------------------------------------------------------
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+INCLUDE_DIRECTORIES(include)
+INCLUDE_DIRECTORIES(compat)
+
+SET(CORE_SOURCES
+  event.c
+  buffer.c
+  bufferevent.c
+  bufferevent_sock.c
+  bufferevent_pair.c
+  listener.c
+  evmap.c
+  log.c
+  evutil.c
+  strlcpy.c
+  signal.c
+  bufferevent_filter.c
+  evthread.c
+  bufferevent_ratelim.c
+  evutil_rand.c
+)
+
+SET(EXTRA_SOURCES
+  event_tagging.c
+  http.c
+  evdns.c
+  evrpc.c
+)
+
+SET(libevent_sources
+  ${CORE_SOURCES}
+  ${EXTRA_SOURCES}
+)
+
+IF(WIN32)
+  SET(WIN_SOURCES
+    libevent.def
+    win32select.c
+    evthread_win32.c
+    buffer_iocp.c
+    event_iocp.c
+    bufferevent_async.c
+  )
+  LIST(APPEND libevent_sources ${WIN_SOURCES})
+#  INCLUDE_DIRECTORIES(WIN32-Code)
+ENDIF()
+
+IF(HAVE_SELECT)
+  LIST(APPEND libevent_sources select.c)
+ENDIF()
+
+IF(HAVE_POLL)
+  LIST(APPEND libevent_sources poll.c)
+ENDIF()
+
+IF(HAVE_EPOLL)
+  LIST(APPEND libevent_sources epoll.c epoll_sub.c)
+ENDIF()
+
+IF(HAVE_SYS_DEVPOLL_H)
+  LIST(APPEND libevent_sources devpoll.c)
+ENDIF()
+
+IF(HAVE_PORT_H)
+  LIST(APPEND libevent_sources evport.c)
+ENDIF()
+
+IF(HAVE_KQUEUE)
+  LIST(APPEND libevent_sources kqueue.c)
+ENDIF()
+
+ADD_LIBRARY(event SHARED ${libevent_sources})
+
+IF(WIN32)
+  TARGET_LINK_LIBRARIES(event ws2_32) # winsock2 
+ENDIF()
+
+INSTALL(TARGETS event 
+  RUNTIME DESTINATION bin
+  ARCHIVE DESTINATION lib
+  LIBRARY DESTINATION lib
+)
+
+# ----------------------------------------------------------------------
+# Define what to install, not in targets already
+# ----------------------------------------------------------------------
+
+INSTALL(FILES
+    event.h
+    evhttp.h
+    evdns.h
+    evrpc.h
+    evutil.h
+  DESTINATION include/
+)
+
+INSTALL(DIRECTORY include/event2
+  DESTINATION include/
+)

--- config.h.cmake.ORIG	2013-04-04 14:24:45.693441000 +0200
+++ config.h.cmake	2013-04-04 09:49:02.479964600 +0200
@@ -0,0 +1,82 @@
+#cmakedefine HAVE_ARPA_INET_H
+#cmakedefine HAVE_DLFCN_H
+#cmakedefine HAVE_FCNTL_H
+#cmakedefine HAVE_INTTYPES_H
+#cmakedefine HAVE_MEMORY_H
+#cmakedefine HAVE_NETDB_H
+#cmakedefine HAVE_NETINET_IN6_H
+#cmakedefine HAVE_NETINET_IN_H
+#cmakedefine HAVE_OPENSSL_BIO_H
+#cmakedefine HAVE_POLL_H
+#cmakedefine HAVE_PORT_H
+#cmakedefine HAVE_STDARG_H
+#cmakedefine HAVE_STDDEF_H
+#cmakedefine HAVE_STDINT_H
+#cmakedefine HAVE_STDLIB_H
+#cmakedefine HAVE_STRINGS_H
+#cmakedefine HAVE_STRING_H
+#cmakedefine HAVE_SYS_DEVPOLL_H
+#cmakedefine HAVE_SYS_EPOLL_H
+#cmakedefine HAVE_SYS_EVENTFD_H
+#cmakedefine HAVE_SYS_EVENT_H
+#cmakedefine HAVE_SYS_IOCTL_H
+#cmakedefine HAVE_SYS_MMAN_H
+#cmakedefine HAVE_SYS_PARAM_H
+#cmakedefine HAVE_SYS_QUEUE_H
+#cmakedefine HAVE_SYS_SELECT_H
+#cmakedefine HAVE_SYS_SENDFILE_H
+#cmakedefine HAVE_SYS_SOCKET_H
+#cmakedefine HAVE_SYS_STAT_H
+#cmakedefine HAVE_SYS_SYSCTL_H
+#cmakedefine HAVE_SYS_TIME_H
+#cmakedefine HAVE_SYS_TYPES_H
+#cmakedefine HAVE_SYS_UIO_H
+#cmakedefine HAVE_SYS_WAIT_H
+#cmakedefine HAVE_UNISTD_H
+#cmakedefine HAVE_ZLIB_H
+#cmakedefine HAVE_SIGNAL_H
+
+#cmakedefine HAVE_POLL
+#cmakedefine HAVE_SELECT
+#cmakedefine HAVE_GETTIMEOFDAY
+#cmakedefine HAVE_VASPRINTF
+#cmakedefine HAVE_FCNTL
+#cmakedefine HAVE_CLOCK_GETTIME
+#cmakedefine HAVE_STRTOK_R
+#cmakedefine HAVE_STRTOLL
+#cmakedefine HAVE_STRSEP
+#cmakedefine HAVE_GETADDRINFO
+#cmakedefine HAVE_GETNAMEINFO
+#cmakedefine HAVE_STRLCPY
+#cmakedefine HAVE_INET_NTOP
+#cmakedefine HAVE_SIGTIMEDWAIT
+#cmakedefine HAVE_EPOLL
+#cmakedefine HAVE_KQUEUE
+#cmakedefine HAVE_TIMERADD
+#cmakedefine HAVE_TIMERSUB
+#cmakedefine HAVE_TIMERISSET
+#cmakedefine HAVE_TIMERCLEAR
+
+#cmakedefine HAVE_STRUCT_SOCKADDR_STORAGE
+#cmakedefine HAVE_STRUCT_IN6_ADDR
+#cmakedefine HAVE_STRUCT_SOCKADDR_IN6
+
+#cmakedefine SIZEOF_INT @SIZEOF_INT@
+#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
+#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
+#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
+#cmakedefine SIZEOF_SSIZE_T @SIZEOF_SSIZE_T@
+#cmakedefine SIZEOF_UINT64_T @SIZEOF_UINT64_T@
+#cmakedefine SIZEOF_UINT32_T @SIZEOF_UINT32_T@
+#cmakedefine SIZEOF_UINT8_T @SIZEOF_UINT8_T@
+#cmakedefine SIZEOF_UINTPTR_T @SIZEOF_UINTPTR_T@
+#cmakedefine HAVE_UINT64_T
+#cmakedefine HAVE_UINT32_T
+#cmakedefine HAVE_UINT16_T
+#cmakedefine HAVE_UINT8_T
+#cmakedefine HAVE_UINTPTR_T
+
+#cmakedefine ssize_t @ssize_t@
+
+#define VERSION "@LIBEVENT_VERSION@"
+#define NUMERIC_VERSION "@LIBEVENT_NUMERIC_VERSION@"

--- libevent.def.ORIG	2013-04-04 14:24:58.541283000 +0200
+++ libevent.def	2013-04-04 08:13:33.327492100 +0200
@@ -0,0 +1,70 @@
+LIBRARY event.dll
+EXPORTS
+	event_base_new
+	event_init
+	event_reinit
+	event_dispatch
+	event_base_dispatch
+	event_base_get_method
+	event_base_free
+	event_set_log_callback
+	event_base_set
+	event_loop
+	event_base_loop
+	event_loopexit
+	event_base_loopexit
+	event_loopbreak
+	event_base_loopbreak
+	event_set
+	event_once
+	event_base_once
+	event_add
+	event_del
+	event_active
+	event_pending
+	event_get_version
+	event_get_method
+	bufferevent_new
+	bufferevent_base_set
+	bufferevent_priority_set
+	bufferevent_free
+	bufferevent_setcb
+	bufferevent_setfd
+	bufferevent_write
+	bufferevent_write_buffer
+	bufferevent_read
+	bufferevent_enable
+	bufferevent_disable
+	bufferevent_settimeout
+	bufferevent_setwatermark
+	evbuffer_new
+	evbuffer_free
+	evbuffer_expand
+	evbuffer_add
+	evbuffer_remove
+	evbuffer_readline
+	evbuffer_add_buffer
+	evbuffer_add_printf
+	evbuffer_add_vprintf
+	evbuffer_drain
+	evbuffer_write
+	evbuffer_read
+	evbuffer_find
+	evbuffer_setcb
+	evtag_encode_int
+	evtag_init
+	evtag_marshal
+	evtag_marshal_int
+	evtag_marshal_string
+	evtag_marshal_timeval
+	evtag_unmarshal
+	evtag_peek
+	evtag_peek_length
+	evtag_payload_length
+	evtag_consume
+	evtag_unmarshal_int
+	evtag_unmarshal_fixed
+	evtag_unmarshal_string
+	evtag_unmarshal_timeval
+	evutil_socketpair
+	evutil_make_socket_nonblocking
