Hi,

Your script doesn't generate config.h and event-config.h.

New CMakeLists.txt is attached. It makes full checks and generates
config.h and event-config.h.
It was not tested on windows but I think it will work after slight modification.

2009/7/24 Brodie Thiesfield <brofie...@jellycan.com>:
> Hi all,
>
> It's been a while since I looked in at libevent. I appreciate greatly
> the fact that libevent 1.4.11 now builds out of the box on Windows.
>
> Since I am using cmake now for my internal build harness, I found it
> easy to create a cmake build script for libevent. This will generate
> the all projects and solutions for Windows compilers (all versions).
> It is more convenient for me, and since it might be useful for others,
> I have made it available on this site:
>
> http://code.jellycan.com/memcached/
>
> It creates the libevent static library, and builds the regress test
> harness, and the event-test and signal-test samples. Either nmake
> scripts, or solution/projects (or other cmake supported generate
> types) are possible.
>
> Best Regards,
> Brodie
> _______________________________________________
> Libevent-users mailing list
> Libevent-users@monkey.org
> http://monkeymail.org/mailman/listinfo/libevent-users
>
# author - Alexey Ozeritsky

cmake_minimum_required(VERSION 2.6)
project(libevent)

INCLUDE (CMakeForceCompiler)
SET(CMAKE_SYSTEM_NAME Generic)
CMAKE_FORCE_C_COMPILER(arm_v5t_le-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(arm_v5t_le-g++ GNU)

SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)

include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckTypeSize)

include(FindZLIB)    # -> HAVE_LIBZ
include(FindThreads) # -> HAVE_PTHREAD

list(APPEND SRC 
        buffer.c 
        # bufferevent_pair.c # 2.0
        evdns.c event_tagging.c  evrpc.c evutil.c  log.c signal.c
        evbuffer.c           # 1.4
        # bufferevent.c      # 2.0
        # bufferevent_sock.c # 2.0
        event.c       
        # evmap.c            # 2.0
        http.c    strlcpy.c
        # bufferevent_filter.c # 2.0
        )

CHECK_FUNCTION_EXISTS(epoll_create HAVE_EPOLL)
CHECK_FUNCTION_EXISTS(epoll_ctl HAVE_EPOLL_CTL)
CHECK_FUNCTION_EXISTS(eventfd HAVE_EVENTFD)
CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
CHECK_FUNCTION_EXISTS(fcntl HAVE_FCNTL)
CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO)
CHECK_FUNCTION_EXISTS(getnameinfo HAVE_GETNAMEINFO)
CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
CHECK_FUNCTION_EXISTS(inet_aton HAVE_INET_ATON)
CHECK_FUNCTION_EXISTS(inet_ntop HAVE_INET_NTOP)
CHECK_FUNCTION_EXISTS(inet_pton HAVE_INET_PTON)
CHECK_FUNCTION_EXISTS(kqueue HAVE_KQUEUE)
CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
CHECK_FUNCTION_EXISTS(pipe HAVE_PIPE)
CHECK_FUNCTION_EXISTS(poll HAVE_POLL)
CHECK_FUNCTION_EXISTS(port_create HAVE_PORT_CREATE)
CHECK_FUNCTION_EXISTS(select HAVE_SELECT)
CHECK_FUNCTION_EXISTS(sendfile HAVE_SENDFILE)
CHECK_FUNCTION_EXISTS(sigaction HAVE_SIGACTION)
CHECK_FUNCTION_EXISTS(signal HAVE_SIGNAL)
CHECK_FUNCTION_EXISTS(splice HAVE_SPLICE)
CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
CHECK_FUNCTION_EXISTS(strsep HAVE_STRSEP)
CHECK_FUNCTION_EXISTS(strtok_r HAVE_STRTOK_R)
CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)

CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
CHECK_INCLUDE_FILE(arpa/inet.h HAVE_ARPA_INET_H)
CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H)
CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
CHECK_INCLUDE_FILE(netinet/in6.h HAVE_NETINET_IN6_H)
CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H)
CHECK_INCLUDE_FILE(poll.h HAVE_POLL_H)
CHECK_INCLUDE_FILE(port.h HAVE_PORT_H)
CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(stddef.h HAVE_STDDEF_H)
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
CHECK_INCLUDE_FILE(string.h HAVE_STRING_H)
CHECK_INCLUDE_FILE(sys/devpoll.h HAVE_SYS_DEVPOLL_H)
CHECK_INCLUDE_FILE(sys/epoll.h HAVE_SYS_EPOLL_H)
CHECK_INCLUDE_FILE(sys/eventfd.h HAVE_SYS_EVENTFD_H)
CHECK_INCLUDE_FILE(sys/event.h HAVE_SYS_EVENT_H)
CHECK_INCLUDE_FILE(sys/ioctl.h HAVE_SYS_IOCTL_H)
CHECK_INCLUDE_FILE(sys/mman.h HAVE_SYS_MMAN_H)
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
CHECK_INCLUDE_FILE(sys/queue.h HAVE_SYS_QUEUE_H)
CHECK_INCLUDE_FILE(sys/select.h HAVE_SYS_SELECT_H)
CHECK_INCLUDE_FILE(sys/sendfile.h HAVE_SYS_SENDFILE_H)
CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H)
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/time.h HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILE(sys/uio.h HAVE_SYS_UIO_H)

CHECK_TYPE_SIZE(int SIZEOF_INT BUILTIN_TYPES_ONLY)
CHECK_TYPE_SIZE(short SIZEOF_SHORT BUILTIN_TYPES_ONLY)
CHECK_TYPE_SIZE(long SIZEOF_LONG BUILTIN_TYPES_ONLY)
CHECK_TYPE_SIZE("long long" SIZEOF_LONG_LONG BUILTIN_TYPES_ONLY)

if (HAVE_NETINET_IN6_H)
SET(CMAKE_EXTRA_INCLUDE_FILES sys/types.h netinet/in.h sys/socket.h 
netinet/in6.h)
else (HAVE_NETINET_IN6_H)
SET(CMAKE_EXTRA_INCLUDE_FILES sys/types.h netinet/in.h sys/socket.h)
endif (HAVE_NETINET_IN6_H)

CHECK_TYPE_SIZE("struct in6_addr" HAVE_STRUCT_IN6_ADDR)

if (HAVE_SELECT)
        list(APPEND SRC select.c)
endif (HAVE_SELECT)

if (HAVE_POLL)
        list(APPEND SRC poll.c)
endif (HAVE_POLL)

if (HAVE_KQUEUE)
        list(APPEND SRC kqueue.c)
endif (HAVE_KQUEUE)

if (HAVE_DEVPOLL)
        list(APPEND SRC devpoll.c)
endif (HAVE_DEVPOLL)

list(APPEND REGRESS_SRC 
        # test/regress_buffer.c # 2.0
        test/regress.c 
        # test/regress_et.c     # 2.0
        test/regress_http.c  
        # test/regress_util.c   # 2.0
        # test/regress_bufferevent.c # 2.0
        test/regress_dns.c  test/regress.gen.c  
        # test/regress_main.c   # 2.0
        test/regress_rpc.c 
        # test/tinytest.c       # 2.0
        )

# 2.0
#if (CMAKE_USE_PTHREADS_INIT)
#       set(HAVE_PTHREAD 1)
#       list(APPEND SRC evthread_pthread.c)
#       list(APPEND REGRESS_SRC test/regress_pthread.c)
#endif (CMAKE_USE_PTHREADS_INIT)

# 2.0
#if (ZLIB_FOUND)
#       set(HAVE_LIBZ 1)
#       list(APPEND REGRESS_SRC test/regress_zlib.c)
#endif (ZLIB_FOUND)

if (HAVE_EPOLL)
        list(APPEND SRC epoll_sub.c epoll.c)
endif (HAVE_EPOLL)

if (HAVE_EPORT)
        list(APPEND SRC evport.c)
endif (HAVE_EPORT)

if (WIN32)
        list(APPEND SRC evthread_win32.c event_iocp.c buffer_iocp.c 
event_iocp.c)
endif (WIN32)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config.h)
file (READ ${CMAKE_CURRENT_BINARY_DIR}/config.h CONFIG)
string(REPLACE "#define " "#define _EVENT_" CONFIG ${CONFIG})
string(REPLACE "#undef " "#undef _EVENT_" CONFIG ${CONFIG})
string(REPLACE "#ifndef LIBEVENT_CONFIG_H" "#ifndef _EVENT_LIBEVENT_CONFIG_H" 
CONFIG ${CONFIG})
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/event-config.h ${CONFIG})

add_definitions(-DHAVE_CONFIG_H)
include_directories(./ ./compat ./include)

add_library(event ${SRC})

add_executable(event-test sample/event-test.c)
add_executable(time-test sample/time-test.c)
add_executable(signal-test sample/signal-test.c)

target_link_libraries(event-test event)
target_link_libraries(time-test event)
target_link_libraries(signal-test event)

add_executable(test-init test/test-init.c)
add_executable(test-eof test/test-eof.c)
add_executable(test-weof test/test-weof.c)
add_executable(test-time test/test-time.c)
target_link_libraries(test-init event)
target_link_libraries(test-eof event)
target_link_libraries(test-weof event)
target_link_libraries(test-time event)

add_executable(regress ${REGRESS_SRC})
target_link_libraries(regress event ${ZLIB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})

# libevent 2.0
#add_executable(bench_cascade test/bench_cascade.c)
#add_executable(bench_http test/bench_http.c)
#target_link_libraries(bench_cascade event2)
#target_link_libraries(bench_http event2)

Attachment: config.h.cmake
Description: Binary data

_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to