updates in cmake build

This commit is contained in:
Sergey Nikulov 2014-09-02 18:25:52 +04:00
parent 6a53d15383
commit 27bd9faf49
2 changed files with 82 additions and 66 deletions

View File

@ -8,6 +8,7 @@
# Brodie Thiesfield # Brodie Thiesfield
# Joakim Soderberg # Joakim Soderberg
# Trond Norbye # Trond Norbye
# Sergei Nikulov
# #
# Build example: # Build example:
# #
@ -487,16 +488,11 @@ set(HDR_PRIVATE
defer-internal.h defer-internal.h
epolltable-internal.h epolltable-internal.h
evbuffer-internal.h evbuffer-internal.h
include/evdns.h
event-internal.h event-internal.h
include/event.h
include/evhttp.h
evmap-internal.h evmap-internal.h
evrpc-internal.h evrpc-internal.h
include/evrpc.h
evsignal-internal.h evsignal-internal.h
evthread-internal.h evthread-internal.h
include/evutil.h
ht-internal.h ht-internal.h
http-internal.h http-internal.h
iocp-internal.h iocp-internal.h
@ -511,6 +507,14 @@ set(HDR_PRIVATE
compat/sys/queue.h compat/sys/queue.h
) )
set(HDR_COMPAT
include/evdns.h
include/evrpc.h
include/event.h
include/evhttp.h
include/evutil.h
)
set(HDR_PUBLIC set(HDR_PUBLIC
include/event2/buffer.h include/event2/buffer.h
include/event2/bufferevent.h include/event2/bufferevent.h
@ -656,6 +660,7 @@ if (UNIX)
endif() endif()
source_group("Headers Private" FILES ${HDR_PRIVATE}) source_group("Headers Private" FILES ${HDR_PRIVATE})
source_group("Header Compat" FILES ${HDR_COMPAT})
source_group("Headers Public" FILES ${HDR_PUBLIC}) source_group("Headers Public" FILES ${HDR_PUBLIC})
source_group("Source Core" FILES ${SRC_CORE}) source_group("Source Core" FILES ${SRC_CORE})
source_group("Source Extra" FILES ${SRC_EXTRA}) source_group("Source Extra" FILES ${SRC_EXTRA})
@ -695,12 +700,14 @@ configure_file(
# TODO: Add dynamic versions of the libraries as well. # TODO: Add dynamic versions of the libraries as well.
add_library(event_core ${EVENT__LIBRARY_TYPE} add_library(event_core ${EVENT__LIBRARY_TYPE}
${HDR_PRIVATE} ${HDR_PRIVATE}
${HDR_COMPAT}
${HDR_PUBLIC} ${HDR_PUBLIC}
${SRC_CORE} ${SRC_CORE}
) )
add_library(event_extra ${EVENT__LIBRARY_TYPE} add_library(event_extra ${EVENT__LIBRARY_TYPE}
${HDR_PRIVATE} ${HDR_PRIVATE}
${HDR_COMPAT}
${HDR_PUBLIC} ${HDR_PUBLIC}
${SRC_CORE} ${SRC_CORE}
${SRC_EXTRA} ${SRC_EXTRA}
@ -711,6 +718,7 @@ add_library(event_extra ${EVENT__LIBRARY_TYPE}
# go away in a future version of Libevent. # go away in a future version of Libevent.
add_library(event ${EVENT__LIBRARY_TYPE} add_library(event ${EVENT__LIBRARY_TYPE}
${HDR_PRIVATE} ${HDR_PRIVATE}
${HDR_COMPAT}
${HDR_PUBLIC} ${HDR_PUBLIC}
${SRC_CORE} ${SRC_CORE}
${SRC_EXTRA} ${SRC_EXTRA}
@ -784,14 +792,18 @@ endif()
if (NOT EVENT__DISABLE_TESTS) if (NOT EVENT__DISABLE_TESTS)
# (We require python to generate the regress tests)
find_package(PythonInterp 2.4)
# #
# Generate Regress tests. # Generate Regress tests.
# #
if (NOT EVENT__DISABLE_REGRESS) if (NOT EVENT__DISABLE_REGRESS)
if (PYTHONINTERP_FOUND)
# (We require python to generate the regress tests)
find_package(PythonInterp)
if (PYTHONINTERP_FOUND AND PYTHON_VERSION_STRING VERSION_LESS "3.0.0")
set(__FOUND_USABLE_PYTHON 1)
endif()
if (__FOUND_USABLE_PYTHON)
message("Generating regress tests...") message("Generating regress tests...")
add_definitions(-DTINYTEST_LOCAL) add_definitions(-DTINYTEST_LOCAL)
add_custom_command( add_custom_command(
@ -854,7 +866,7 @@ if (NOT EVENT__DISABLE_TESTS)
target_link_libraries(regress ${LIB_APPS} ${LIB_PLATFORM}) target_link_libraries(regress ${LIB_APPS} ${LIB_PLATFORM})
else() else()
message(WARNING "Python not found, cannot generate regress tests!") message(WARNING "No suitable Python interpreter found, cannot generate regress tests!")
endif() endif()
endif() endif()
@ -934,7 +946,7 @@ if (NOT EVENT__DISABLE_TESTS)
endforeach() endforeach()
# Dump events test. # Dump events test.
if (PYTHONINTERP_FOUND) if (__FOUND_USABLE_PYTHON)
set(TEST_NAME test-dumpevents__${BACKEND_TEST_NAME}) set(TEST_NAME test-dumpevents__${BACKEND_TEST_NAME})
add_test(${TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-dumpevents | ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/check-dumpevents.py) add_test(${TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-dumpevents | ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/check-dumpevents.py)
set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT "${ENV_VARS}") set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT "${ENV_VARS}")
@ -946,7 +958,7 @@ if (NOT EVENT__DISABLE_TESTS)
endif() endif()
# Regress tests. # Regress tests.
if (NOT EVENT__DISABLE_REGRESS AND PYTHONINTERP_FOUND) if (NOT EVENT__DISABLE_REGRESS AND __FOUND_USABLE_PYTHON)
set(TEST_NAME regress__${BACKEND_TEST_NAME}) set(TEST_NAME regress__${BACKEND_TEST_NAME})
add_test(${TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/regress) add_test(${TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/regress)
set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT "${ENV_VARS}") set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT "${ENV_VARS}")
@ -1030,7 +1042,7 @@ if (NOT EVENT__DISABLE_TESTS)
DEPENDS event ${ALL_TESTPROGS}) DEPENDS event ${ALL_TESTPROGS})
endif() endif()
if (NOT EVENT__DISABLE_REGRESS) if (NOT EVENT__DISABLE_REGRESS AND __FOUND_USABLE_PYTHON)
add_dependencies(verify regress) add_dependencies(verify regress)
endif() endif()
@ -1122,6 +1134,10 @@ install(TARGETS event event_core event_extra
LIBRARY DESTINATION "${EVENT_INSTALL_LIB_DIR}" COMPONENT lib LIBRARY DESTINATION "${EVENT_INSTALL_LIB_DIR}" COMPONENT lib
ARCHIVE DESTINATION "${EVENT_INSTALL_LIB_DIR}" COMPONENT lib ARCHIVE DESTINATION "${EVENT_INSTALL_LIB_DIR}" COMPONENT lib
PUBLIC_HEADER DESTINATION "${EVENT_INSTALL_INCLUDE_DIR}/event2" COMPONENT dev) PUBLIC_HEADER DESTINATION "${EVENT_INSTALL_INCLUDE_DIR}/event2" COMPONENT dev)
# Install compat headers
install(FILES ${HDR_COMPAT}
DESTINATION "${EVENT_INSTALL_INCLUDE_DIR}"
COMPONENT dev)
# Install the configs. # Install the configs.
install(FILES install(FILES

View File

@ -7,7 +7,7 @@
get_filename_component(LIBEVENT_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(LIBEVENT_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
# Set the include directories. # Set the include directories.
set(LIBEVENT_INCLUDE_DIRS "@EVENT__INCLUDE_DIRS@") set(LIBEVENT_INCLUDE_DIRS "@EVENT_INSTALL_INCLUDE_DIR@")
# Include the project Targets file, this contains definitions for IMPORTED targets. # Include the project Targets file, this contains definitions for IMPORTED targets.
include(${LIBEVENT_CMAKE_DIR}/LibeventTargets.cmake) include(${LIBEVENT_CMAKE_DIR}/LibeventTargets.cmake)