From e3454fe99e920126723c59e983c8ff78936dc9a6 Mon Sep 17 00:00:00 2001 From: Francois Bleibel <fbleibel@gmail.com> Date: Wed, 23 Jun 2010 18:54:31 +0900 Subject: [PATCH] Added plugins compilation and installation to CMakeFiles. Started separating plugins from sot-core. --- CMakeLists.txt | 11 ------ src/CMakeLists.txt | 92 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 83 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59cbf88f..0b295e9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,17 +78,6 @@ ELSE(PACKAGE_REQUIREMENTS STREQUAL "") SET(PACKAGE_REQUIREMENTS "${PACKAGE_REQUIREMENTS}, ${MATRIXABSTRACTLAYER_REQUIRED}") ENDIF(PACKAGE_REQUIREMENTS STREQUAL "") -INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) -LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) - -# --- BOOST NUMERIC BINDINGS------------------------------------- -IF ("${Boost_VERSION}" STRLESS "104000") - INCLUDE(${CMAKE_MODULE_PATH}/FindBoostNumericBindings.cmake) - MESSAGE(STATUS "BoostNumericBindings_INCLUDE_DIR=${BoostNumericBindings_INCLUDE_DIR}") - INCLUDE_DIRECTORIES(${BoostNumericBindings_INCLUDE_DIR}) - LIST(APPEND ${PROJECT_NAME}_CFLAGS -I${BoostNumericBindings_INCLUDE_DIR}) -ENDIF("${Boost_VERSION}" STRLESS "104000") - # # Dependency to package dynamic-graph # diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aa9c8210..33263c24 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,11 +2,16 @@ # Copyright # -SET(LIBRARY_NAME ${PROJECT_NAME}) +#This project will create many shared libraries as plugins, listed here +SET(plugins + sot/sot-qr + sot/weighted-sot + sot/sot-h + sot/sot +) -#Warning: compile order is VERY important (if you get a segfault, it's probably -#the reason -SET(${LIBRARY_NAME}_SOURCES +#sot-core library sources +SET(${PROJECT_NAME}_SOURCES debug/debug.cpp debug/contiifstream.cpp @@ -75,6 +80,7 @@ SET(${LIBRARY_NAME}_SOURCES factory/command/import.cpp ) +SET(LIBRARY_NAME ${PROJECT_NAME}) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) ADD_DEFINITIONS(-DDEBUG=2) @@ -94,10 +100,10 @@ SET_TARGET_PROPERTIES(${LIBRARY_NAME} SOVERSION ${PROJECT_VERSION} INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) -SET_TARGET_PROPERTIES(${PROJECT_NAME_LIB} +SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES - COMPILE_FLAGS ${${PROJECT_NAME}_src_CXXFLAGS} - LINK_FLAGS ${${PROJECT_NAME}_src_LDFLAGS} + COMPILE_FLAGS "${${PROJECT_NAME}_src_CXXFLAGS}" + LINK_FLAGS "${${PROJECT_NAME}_src_LDFLAGS}" ) # Add lapack compilation flags and link to library libLapack.so @@ -130,10 +136,10 @@ ENDIF(WIN32) # Linux dynamic loading library flags IF(UNIX) - SET(${PROJECT_NAME}_src_LDFLAGS "${${PROJECT_NAME}_src_LDFLAGS} -ldl") + TARGET_LINK_LIBRARIES(${LIBRARY_NAME} dl) ENDIF(UNIX) - +MESSAGE(STATUS "ldflags ${${PROJECT_NAME}_src_LDFLAGS}" ) SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES LINK_FLAGS "${${PROJECT_NAME}_src_LDFLAGS}" @@ -141,3 +147,71 @@ SET_TARGET_PROPERTIES(${LIBRARY_NAME} INSTALL(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + +#Plugins compilation, link, and installation +FOREACH(plugin ${plugins}) + #retrieve plugin name + GET_FILENAME_COMPONENT(LIBRARY_NAME ${plugin} NAME) + + INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) + + ADD_DEFINITIONS(-DDEBUG=2) + + # provide path to library libMatrixAbstractLayer.so + LINK_DIRECTORIES(${MATRIXABSTRACTLAYER_LIBRARY_DIRS}) + + # provide path to library libdynamic-graph.so + LINK_DIRECTORIES(${DYNAMIC_GRAPH_LIBRARY_DIRS}) + + # only one source file per plugin + ADD_LIBRARY(${LIBRARY_NAME} + SHARED + ${plugin}.cpp) + + SET_TARGET_PROPERTIES(${LIBRARY_NAME} + PROPERTIES + SOVERSION ${PROJECT_VERSION} + INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib/plugin) + + # Add lapack compilation flags and link to library libLapack.so + ADD_DEFINITIONS(${LAPACK_CFLAGS}) + TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${LAPACK_LIBRARIES}) + + # Add MatrixAbstractLayer compilation flags and link to library libMatrixAbstractLayer.so + ADD_DEFINITIONS(${MATRIXABSTRACTLAYER_CFLAGS}) + IF(UNIX) + TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${MATRIXABSTRACTLAYER_LIBRARIES}) + ENDIF(UNIX) + + IF(WIN32) + foreach(dlink ${MATRIXABSTRACTLAYER_LDFLAGS}) + SET ( ${PROJECT_NAME}_src_LDFLAGS "${${PROJECT_NAME}_src_LDFLAGS} ${dlink}") + endforeach(dlink) + ENDIF(WIN32) + + # Add dynamic-graph compilation flags and link to library libdynamic-graph.so + ADD_DEFINITIONS(${DYNAMIC_GRAPH_CFLAGS}) + IF(UNIX) + TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${DYNAMIC_GRAPH_LIBRARIES}) + ENDIF(UNIX) + + IF(WIN32) + foreach(dlink ${DYNAMIC_GRAPH_LDFLAGS}) + SET ( ${PROJECT_NAME}_src_LDFLAGS "${${PROJECT_NAME}_src_LDFLAGS} ${dlink}") + endforeach(dlink) + ENDIF(WIN32) + + # Linux dynamic loading library flags + IF(UNIX) + TARGET_LINK_LIBRARIES(${LIBRARY_NAME} dl) + ENDIF(UNIX) + + SET_TARGET_PROPERTIES(${LIBRARY_NAME} + PROPERTIES + COMPILE_FLAGS "${${PROJECT_NAME}_src_CXXFLAGS}" + LINK_FLAGS "${${PROJECT_NAME}_src_LDFLAGS}" + ) + + INSTALL(TARGETS ${LIBRARY_NAME} + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/plugin) +ENDFOREACH(plugin) -- GitLab