diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d68d7a83746023aa6acc68e80a9cdae115352ee..47f197728e04493c05de714f5683200f1cd0bdbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ # Pre-requisites about cmake itself -CMAKE_MINimuM_REQUIRED(VERSION 2.6) +CMAKE_MINimuM_REQUIRED(VERSION 2.8) if(COMMAND cmake_policy) cmake_policy(SET CMP0005 NEW) @@ -8,11 +8,11 @@ endif(COMMAND cmake_policy) # MAC OSX RPATH SET(CMAKE_MACOSX_RPATH 1) - # The project name PROJECT(imu) set(PLUGIN_NAME "wolf${PROJECT_NAME}") +MESSAGE("Starting ${PROJECT_NAME} CMakeLists ...") SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) @@ -67,16 +67,11 @@ if(BUILD_TESTS) enable_testing() endif() -MESSAGE("Starting ${PROJECT_NAME} CMakeLists ...") -CMAKE_MINimuM_REQUIRED(VERSION 2.8) - #CMAKE modules - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules") MESSAGE(STATUS ${CMAKE_MODULE_PATH}) # Some wolf compilation options - IF((CMAKE_BUILD_TYPE MATCHES DEBUG) OR (CMAKE_BUILD_TYPE MATCHES debug) OR (CMAKE_BUILD_TYPE MATCHES Debug)) set(_WOLF_DEBUG true) ENDIF() @@ -91,7 +86,6 @@ IF(BUILD_EXAMPLES OR BUILD_TESTS) set(_WOLF_ROOT_DIR ${CMAKE_SOURCE_DIR}) ENDIF(BUILD_EXAMPLES OR BUILD_TESTS) - #find dependencies. # ============EXAMPLE================== FIND_PACKAGE(wolfcore REQUIRED) @@ -119,14 +113,6 @@ INCLUDE_DIRECTORIES(${wolfcore_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(BEFORE "include") #HEADERS - -SET(HDRS_COMMON - ) -SET(HDRS_MATH - include/imu/math/imu_tools.h - ) -SET(HDRS_UTILS - ) SET(HDRS_CAPTURE include/imu/capture/capture_compass.h include/imu/capture/capture_imu.h @@ -140,7 +126,8 @@ SET(HDRS_FEATURE include/imu/feature/feature_imu.h include/imu/feature/feature_imu2d.h ) -SET(HDRS_LANDMARK +SET(HDRS_MATH + include/imu/math/imu_tools.h ) SET(HDRS_PROCESSOR include/imu/processor/processor_compass.h @@ -152,33 +139,15 @@ SET(HDRS_SENSOR include/imu/sensor/sensor_imu.h include/imu/sensor/sensor_imu2d.h ) -SET(HDRS_SOLVER - ) -SET(HDRS_DTASSC - ) #SOURCES - -SET(SRCS_COMMON - ) -SET(SRCS_MATH - include/imu/math/imu_tools.h - include/imu/math/imu2d_tools.h - ) -SET(SRCS_UTILS - ) - SET(SRCS_CAPTURE src/capture/capture_imu.cpp ) -SET(SRCS_FACTOR - ) SET(SRCS_FEATURE src/feature/feature_imu.cpp src/feature/feature_imu2d.cpp ) -SET(SRCS_LANDMARK - ) SET(SRCS_PROCESSOR src/processor/processor_compass.cpp src/processor/processor_imu.cpp @@ -191,55 +160,20 @@ SET(SRCS_SENSOR src/sensor/sensor_imu.cpp src/sensor/sensor_imu2d.cpp ) -SET(SRCS_DTASSC - ) -SET(SRCS_SOLVER - ) SET(SRCS_YAML src/yaml/processor_imu_yaml.cpp src/yaml/processor_imu2d_yaml.cpp src/yaml/sensor_imu_yaml.cpp src/yaml/sensor_imu2d_yaml.cpp ) -#OPTIONALS -#optional HDRS and SRCS -# ==================EXAMPLE=============== -# IF (Ceres_FOUND) -# SET(HDRS_WRAPPER -# include/base/solver_suitesparse/sparse_utils.h -# include/base/solver/solver_manager.h -# include/base/ceres_wrapper/ceres_manager.h -# include/base/ceres_wrapper/cost_function_wrapper.h -# include/base/ceres_wrapper/create_numeric_diff_cost_function.h -# include/base/ceres_wrapper/local_parametrization_wrapper.h -# ) -# SET(SRCS_WRAPPER -# src/solver/solver_manager.cpp -# src/ceres_wrapper/ceres_manager.cpp -# src/ceres_wrapper/local_parametrization_wrapper.cpp -# ) -# ELSE(Ceres_FOUND) -# SET(HDRS_WRAPPER) -# SET(SRCS_WRAPPER) -# ENDIF(Ceres_FOUND) - # create the shared library ADD_LIBRARY(${PLUGIN_NAME} SHARED - ${SRCS_BASE} ${SRCS_CAPTURE} - ${SRCS_COMMON} - ${SRCS_DTASSC} - ${SRCS_FACTOR} ${SRCS_FEATURE} - ${SRCS_LANDMARK} - ${SRCS_MATH} ${SRCS_PROCESSOR} ${SRCS_SENSOR} - ${SRCS_SOLVER} - ${SRCS_UTILS} - ${SRCS_WRAPPER} ${SRCS_YAML} ) @@ -255,11 +189,9 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # using GCC endif() - #Link the created libraries TARGET_LINK_LIBRARIES(${PLUGIN_NAME} ${wolfcore_LIBRARIES}) - #Build tests #===============EXAMPLE========================= IF(BUILD_TESTS) @@ -269,53 +201,34 @@ ENDIF(BUILD_TESTS) #install library -#============================================================= INSTALL(TARGETS ${PLUGIN_NAME} EXPORT ${PLUGIN_NAME}Targets RUNTIME DESTINATION bin - LIBRARY DESTINATION lib/iri-algorithms - ARCHIVE DESTINATION lib/iri-algorithms) + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) install(EXPORT ${PLUGIN_NAME}Targets DESTINATION lib/cmake/${PLUGIN_NAME}) #install headers -INSTALL(FILES ${HDRS_DTASSC} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/association) -INSTALL(FILES ${HDRS_MATH} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/math) -INSTALL(FILES ${HDRS_COMMON} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/common) -INSTALL(FILES ${HDRS_UTILS} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/utils) INSTALL(FILES ${HDRS_CAPTURE} DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/capture) INSTALL(FILES ${HDRS_FACTOR} DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/factor) INSTALL(FILES ${HDRS_FEATURE} DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/feature) -INSTALL(FILES ${HDRS_SENSOR} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/sensor) +INSTALL(FILES ${HDRS_MATH} + DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/math) INSTALL(FILES ${HDRS_PROCESSOR} DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/processor) -INSTALL(FILES ${HDRS_LANDMARK} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/landmark) -INSTALL(FILES ${HDRS_WRAPPER} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/ceres_wrapper) -#INSTALL(FILES ${HDRS_SOLVER_SUITESPARSE} -# DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/solver_suitesparse) -INSTALL(FILES ${HDRS_SOLVER} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/solver) -INSTALL(FILES ${HDRS_SERIALIZATION} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/serialization) -INSTALL(FILES ${HDRS_YAML} - DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/yaml) +INSTALL(FILES ${HDRS_SENSOR} + DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/sensor) +FILE(WRITE imu.found "") INSTALL(FILES ${PROJECT_NAME}.found DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}) -FILE(WRITE imu.found "") - INSTALL(FILES "${WOLF_CONFIG_DIR}/config.h" DESTINATION include/iri-algorithms/wolf/plugin_${PROJECT_NAME}/${PROJECT_NAME}/internal) INSTALL(FILES "${CMAKE_SOURCE_DIR}/cmake_modules/${PLUGIN_NAME}Config.cmake" DESTINATION "lib/cmake/${PLUGIN_NAME}") + INSTALL(DIRECTORY ${SPDLOG_INCLUDE_DIRS} DESTINATION "include/iri-algorithms/") export(PACKAGE ${PLUGIN_NAME}) diff --git a/cmake_modules/wolfimuConfig.cmake b/cmake_modules/wolfimuConfig.cmake index b157cd3870468e1fbfad10b206b4ba55e310244b..97662cc09eb78aaf9b2b80e5b32cad9c59579bfc 100644 --- a/cmake_modules/wolfimuConfig.cmake +++ b/cmake_modules/wolfimuConfig.cmake @@ -12,7 +12,7 @@ ENDIF(wolfimu_INCLUDE_DIRS) FIND_LIBRARY( wolfimu_LIBRARIES NAMES libwolfimu.so libwolfimu.dylib - PATHS /usr/local/lib/iri-algorithms) + PATHS /usr/local/lib) IF(wolfimu_LIBRARIES) MESSAGE("Found wolf imu lib: ${wolfimu_LIBRARIES}") ELSE(wolfimu_LIBRARIES) @@ -77,3 +77,8 @@ if(NOT wolf_FOUND) list(APPEND wolfimu_LIBRARIES ${wolfcore_LIBRARIES}) list(REVERSE wolfimu_LIBRARIES) endif() + +# provide both INCLUDE_DIR and INCLUDE_DIRS +SET(wolfimu_INCLUDE_DIR ${wolfimu_INCLUDE_DIRS}) +# provide both LIBRARY and LIBRARIES +SET(wolfimu_LIBRARY ${wolfimu_LIBRARIES})