From 623f402c9b162e056a5ec170c48a412a11beae6e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Krist=C3=B3f=20Katus?= Date: Fri, 26 Aug 2011 16:21:12 +0200 Subject: [PATCH] Full CMake conversion of the libasyncio project without using any compile flags. --- CMakeLists.txt | 15 +++++++++------ asyncio/CMakeLists.txt | 9 ++++++++- glue_t2n/CMakeLists.txt | 7 +++++++ libasyncio.spec.in | 15 ++++++--------- utils/CMakeLists.txt | 5 +---- utils/i2ncommon/CMakeLists.txt | 11 +++++++++++ 6 files changed, 42 insertions(+), 20 deletions(-) create mode 100644 utils/i2ncommon/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 8559ce3..4afafa0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/asyncio/CMakeLists.txt b/asyncio/CMakeLists.txt index 8a1521d..203c52a 100644 --- a/asyncio/CMakeLists.txt +++ b/asyncio/CMakeLists.txt @@ -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) diff --git a/glue_t2n/CMakeLists.txt b/glue_t2n/CMakeLists.txt index e97088e..d7f9bc9 100644 --- a/glue_t2n/CMakeLists.txt +++ b/glue_t2n/CMakeLists.txt @@ -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) diff --git a/libasyncio.spec.in b/libasyncio.spec.in index a496757..57dedb9 100644 --- a/libasyncio.spec.in +++ b/libasyncio.spec.in @@ -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 diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 9e00c25..9b1a213 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -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 index 0000000..51292ac --- /dev/null +++ b/utils/i2ncommon/CMakeLists.txt @@ -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) -- 1.7.1