Full CMake conversion of the libasyncio project without using any compile flags.
authorKristóf Katus <kristof.katus@intra2net.com>
Fri, 26 Aug 2011 14:21:12 +0000 (16:21 +0200)
committerKristóf Katus <kristof.katus@intra2net.com>
Fri, 26 Aug 2011 14:21:12 +0000 (16:21 +0200)
CMakeLists.txt
asyncio/CMakeLists.txt
glue_t2n/CMakeLists.txt
libasyncio.spec.in
utils/CMakeLists.txt
utils/i2ncommon/CMakeLists.txt [new file with mode: 0644]

index 8559ce3..4afafa0 100644 (file)
@@ -32,10 +32,11 @@ if(WITH_LIBT2N)
     pkg_check_modules(LIBT2N REQUIRED libt2n)
     include_directories(${LIBT2N_INCLUDE_DIRS})
     link_directories(${LIBT2N_LIBRARY_DIRS})
-    set(T2NDIRS glue_t2n)
+    # set(T2NDIRS glue_t2n)
 elseif(WITH_LIBT2N)
     message(STATUS "[!] Building *without* libt2n support. [!]")
 endif(WITH_LIBT2N)
+set(T2NDIRS glue_t2n)
 
 # Documentation
 find_package(Doxygen)
@@ -122,8 +123,10 @@ set(STDC_HEADER_NAMES
 check_include_files("${STDC_HEADER_NAMES}" STDC_HEADERS)
 
 # Config file
-configure_file(${CMAKE_SOURCE_DIR}/asyncio_config.hpp.in.cmake ${CMAKE_BINARY_DIR}/asyncio_config.hpp)
-include_directories(BEFORE ${CMAKE_BINARY_DIR})
+# configure_file(${CMAKE_SOURCE_DIR}/asyncio_config.hpp.in.cmake ${CMAKE_BINARY_DIR}/asyncio_config.hpp)
+# include_directories(BEFORE ${CMAKE_BINARY_DIR})
+configure_file(${CMAKE_SOURCE_DIR}/asyncio_config.hpp.in.cmake ${CMAKE_SOURCE_DIR}/asyncio/asyncio_config.hpp)
+# include_directories(BEFORE ${CMAKE_SOURCE_DIR}/asyncio)
 
 # PkgConfig output
 set(prefix      ${CMAKE_INSTALL_PREFIX})
@@ -144,9 +147,9 @@ install(FILES ${CMAKE_BINARY_DIR}/glue_t2n/libasyncio_t2n.pc DESTINATION lib/pkg
 set(CPACK_SET_DESTDIR "ON")
 add_subdirectory(utils)
 add_subdirectory(asyncio)
-if(${WITH_LIBT2N})
-    add_subdirectory(${T2NDIRS})
-endif(${WITH_LIBT2N})
+# if(${WITH_LIBT2N})
+add_subdirectory(${T2NDIRS})
+# endif(${WITH_LIBT2N})
 add_subdirectory(unittest)
 
 include(CPack)
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)
index e97088e..d7f9bc9 100644 (file)
@@ -11,10 +11,17 @@ include_directories(BEFORE
 add_library(libasyncio_t2n SHARED ${libasyncio_t2n_SOURCES} ${libasyncio_t2n_HEADERS})
 set_target_properties(libasyncio_t2n PROPERTIES VERSION ${VERSION} SOVERSION 0)
 set_target_properties(libasyncio_t2n PROPERTIES OUTPUT_NAME asyncio_t2n)
+set_target_properties(libasyncio_t2n PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+
+add_library(libasyncio_t2n-static STATIC ${libasyncio_t2n_SOURCES} ${libasyncio_t2n_HEADERS})
+set_target_properties(libasyncio_t2n-static PROPERTIES OUTPUT_NAME asyncio_t2n)
+set_target_properties(libasyncio_t2n-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
 
 # Dependencies
 target_link_libraries(libasyncio_t2n libasyncio ${LIBT2N_LIBRARIES} ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
+target_link_libraries(libasyncio_t2n-static libasyncio ${LIBT2N_LIBRARIES} ${LIBI2NCOMMON_LIBRARIES} ${Boost_SIGNALS_LIBRARIES})
 
 # Installation
 install(TARGETS libasyncio_t2n LIBRARY DESTINATION lib)
+install(TARGETS libasyncio_t2n-static ARCHIVE DESTINATION lib)
 install(FILES ${libasyncio_t2n_HEADERS} DESTINATION include)
index a496757..57dedb9 100644 (file)
@@ -17,7 +17,7 @@ Source:    %{name}-%{version}.tar.gz
 Prefix:    /usr
 Requires:  libi2ncommon >= 1.0
 Requires:   boost >= 1.32.0
-Requires:  libasynio-utils = %{version}
+Requires:  libasyncio-utils = %{version}
 # BuildRequires: libtool
 BuildRequires: boost-devel >= 1.32.0
 Obsoletes: libsimpleio
@@ -94,8 +94,9 @@ export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/intranator/lib/pkgconfig
 mkdir build
 cd build
 
-export CFLAGS="$RPM_OPT_FLAGS"
-export CXXFLAGS="$RPM_OPT_FLAGS"
+# Temporarily disabled...
+# export CFLAGS="$RPM_OPT_FLAGS"
+# export CXXFLAGS="$RPM_OPT_FLAGS"
 
 CMAKE_OPTS=""
 %if %{with libi2ncommon}
@@ -109,10 +110,6 @@ cmake -DCMAKE_INSTALL_PREFIX="%{prefix}" $CMAKE_OPTS ../
 
 dmake %{?_smp_mflags}
 
-# for dir in utils asyncio; do
-#     make -C $dir headerlist
-# done
-
 export BOOST_TEST_LOG_LEVEL=test_suite
 dmake check
 
@@ -135,7 +132,7 @@ rm -fr $RPM_BUILD_ROOT
 %doc LICENSE COPYING.GPL
 %{prefix}/lib/libasyncio.so*
 
-%files devel -f headerlist.asyncio
+%files devel -f build/headerlist.asyncio
 %defattr(-,root,root)
 %{prefix}/lib/libasyncio.*a*
 %{prefix}/lib/pkgconfig/libasyncio.pc
@@ -146,7 +143,7 @@ rm -fr $RPM_BUILD_ROOT
 %{prefix}/lib/libasyncio_utils.so*
 
 
-%files utils-devel -f headerlist.utils
+%files utils-devel -f build/headerlist.utils
 %defattr(-,root,root)
 %{prefix}/lib/libasyncio.*a*
 %{prefix}/lib/pkgconfig/libasyncio_utils.pc
index 9e00c25..9b1a213 100644 (file)
@@ -1,8 +1,5 @@
 # Sources
-if(WITH_LIBI2NCOMMON)
-    set(compat_HEADERS i2ncommon/containerfunc.hpp i2ncommon/signalfunc.hpp)
-    set(compat_SOURCES i2ncommon/containerfunc.cpp i2ncommon/signalfunc.cpp)
-endif(WITH_LIBI2NCOMMON)
+add_subdirectory(i2ncommon)
 set(libasyncio_utils_SOURCES
     asyncio_time_tools.cpp
     asyncio_utils.cpp
diff --git a/utils/i2ncommon/CMakeLists.txt b/utils/i2ncommon/CMakeLists.txt
new file mode 100644 (file)
index 0000000..51292ac
--- /dev/null
@@ -0,0 +1,11 @@
+# Sources
+if(WITH_LIBI2NCOMMON)
+    set(compat_HEADERS
+       containerfunc.hpp
+       signalfunc.hpp
+       )
+    set(compat_SOURCES
+       containerfunc.cpp
+       signalfunc.cpp
+       )
+endif(WITH_LIBI2NCOMMON)