d7605b677fd3589bfd3df455e47d2e9bfcc2b6bf
[libasyncio] / asyncio / CMakeLists.txt
1 # Sources
2 set(libasyncio_SOURCES
3     async_callout.cpp
4     async_io.cpp
5     async_pipe.cpp
6     async_process.cpp
7     async_socket.cpp
8     async_timer.cpp
9 )
10 set(libasyncio_HEADERS 
11     async_callout.hpp
12     async_io.hpp
13     async_pipe.hpp
14     async_process.hpp
15     async_socket.hpp
16     async_timer.hpp
17     asyncio_config.hpp
18 )
19 include_directories(BEFORE
20                     ${CMAKE_CURRENT_SOURCE_DIR}
21                     ${CMAKE_SOURCE_DIR}/utils
22                     ${CMAKE_SOURCE_DIR}/utils/i2ncommon
23                     )
24
25 # Libraries
26 add_library(libasyncio SHARED ${libasyncio_SOURCES} ${libasyncio_HEADERS})
27 set_target_properties(libasyncio PROPERTIES VERSION ${VERSION} SOVERSION 1)
28 set_target_properties(libasyncio PROPERTIES OUTPUT_NAME asyncio)
29 set_target_properties(libasyncio PROPERTIES CLEAN_DIRECT_OUTPUT 1)
30
31 add_library(libasyncio-static STATIC ${libasyncio_SOURCES} ${libasyncio_HEADERS})
32 set_target_properties(libasyncio-static PROPERTIES OUTPUT_NAME asyncio)
33 set_target_properties(libasyncio-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
34
35 # Dependencies
36 target_link_libraries(libasyncio ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
37 target_link_libraries(libasyncio-static ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
38
39 # Headerlist
40 foreach(header_file_in ${libasyncio_HEADERS})
41     set(header_files_out "${header_files_out}${includedir}/${header_file_in}\n")
42 endforeach()
43 file(WRITE ${CMAKE_BINARY_DIR}/headerlist.asyncio ${header_files_out})
44
45 # Installation
46 install(TARGETS libasyncio LIBRARY DESTINATION lib)
47 install(TARGETS libasyncio-static ARCHIVE DESTINATION lib)
48 install(FILES ${libasyncio_HEADERS} DESTINATION include)