Full CMake conversion of the libasyncio project without using any compile flags.
[libasyncio] / asyncio / CMakeLists.txt
index 8a1521d..203c52a 100644 (file)
@@ -14,7 +14,7 @@ set(libasyncio_HEADERS
     async_process.hpp
     async_socket.hpp
     async_timer.hpp
-    ${CMAKE_BINARY_DIR}/asyncio_config.hpp
+    asyncio_config.hpp
 )
 include_directories(BEFORE
                    ${CMAKE_CURRENT_SOURCE_DIR}
@@ -26,9 +26,15 @@ include_directories(BEFORE
 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})
@@ -38,4 +44,5 @@ 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)