Merge remote-tracking branch 'origin/cmake-conversion'
[libasyncio] / asyncio / CMakeLists.txt
diff --git a/asyncio/CMakeLists.txt b/asyncio/CMakeLists.txt
new file mode 100644 (file)
index 0000000..203c52a
--- /dev/null
@@ -0,0 +1,48 @@
+# Sources
+set(libasyncio_SOURCES
+    async_callout.cpp
+    async_io.cpp
+    async_pipe.cpp
+    async_process.cpp
+    async_socket.cpp
+    async_timer.cpp
+)
+set(libasyncio_HEADERS 
+    async_callout.hpp
+    async_io.hpp
+    async_pipe.hpp
+    async_process.hpp
+    async_socket.hpp
+    async_timer.hpp
+    asyncio_config.hpp
+)
+include_directories(BEFORE
+                   ${CMAKE_CURRENT_SOURCE_DIR}
+                   ${CMAKE_SOURCE_DIR}/utils
+                   ${CMAKE_SOURCE_DIR}/utils/i2ncommon
+                   )
+
+# Libraries
+add_library(libasyncio SHARED ${libasyncio_SOURCES} ${libasyncio_HEADERS})
+set_target_properties(libasyncio PROPERTIES VERSION ${VERSION} SOVERSION 0)
+set_target_properties(libasyncio PROPERTIES OUTPUT_NAME asyncio)
+set_target_properties(libasyncio PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+
+add_library(libasyncio-static STATIC ${libasyncio_SOURCES} ${libasyncio_HEADERS})
+set_target_properties(libasyncio-static PROPERTIES OUTPUT_NAME asyncio)
+set_target_properties(libasyncio-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+
+# Dependencies
+target_link_libraries(libasyncio ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
+target_link_libraries(libasyncio-static ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
+
+# Headerlist
+foreach(header_file_in ${libasyncio_HEADERS})
+    set(header_files_out "${header_files_out}${includedir}/${header_file_in}\n")
+endforeach()
+file(WRITE ${CMAKE_BINARY_DIR}/headerlist.asyncio ${header_files_out})
+
+# Installation
+install(TARGETS libasyncio LIBRARY DESTINATION lib)
+install(TARGETS libasyncio-static ARCHIVE DESTINATION lib)
+install(FILES ${libasyncio_HEADERS} DESTINATION include)