Skip to content
Snippets Groups Projects
Commit 2a315ef4 authored by Joaquim Casals Buñuel's avatar Joaquim Casals Buñuel
Browse files

Added Cmake config for plugin

parent b9987005
No related branches found
No related tags found
No related merge requests found
# Pre-requisites about cmake itself
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#THIS IS A TEST MODIFICATION
if(COMMAND cmake_policy)
cmake_policy(SET CMP0005 NEW)
cmake_policy(SET CMP0003 NEW)
......@@ -10,27 +10,8 @@ SET(CMAKE_MACOSX_RPATH 1)
# The project name
PROJECT(wolf)
#string(COMPARE EQUAL "${CMAKE_BINARY_DIR}" "" result)
#IF(result)
# SET(CMAKE_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR})
#ENDIF()
#message(STATUS "Binary path : " ${CMAKE_BINARY_DIR})
#
PROJECT(vision)
#SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
#SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
#
# We'll set the install prefix only is it's empty
# which shouldn't be the case ...
#string(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "" result)
#IF(result)
# This path is actually default on linux
# SET(CMAKE_INSTALL_PREFIX /usr/local)
#ENDIF()
#message(STATUS "Installation path : " ${CMAKE_INSTALL_PREFIX})
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
......@@ -80,9 +61,7 @@ if(BUILD_TESTS)
enable_testing()
endif()
#+START_SRC --------------------------------------------------------------------------------------------------------------------------------
#Start WOLF build
MESSAGE("Starting WOLF CMakeLists ...")
MESSAGE("Starting ${PROJECT_NAME} CMakeLists ...")
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#CMAKE modules
......@@ -100,7 +79,6 @@ option(_WOLF_TRACE "Enable wolf tracing macro" ON)
# option(BUILD_EXAMPLES "Build examples" OFF)
set(BUILD_TESTS true)
set(BUILD_EXAMPLES true)
# Does this has any other interest
# but for the examples ?
......@@ -111,48 +89,23 @@ ENDIF(BUILD_EXAMPLES OR BUILD_TESTS)
#find dependencies.
# ============EXAMPLE==================
FIND_PACKAGE(Eigen3 3.2.92 REQUIRED)
FIND_PACKAGE(Threads REQUIRED)
FIND_PACKAGE(wolf REQUIRED)
FIND_PACKAGE(vision_utils REQUIRED)
MESSAGE("vision_utils Library FOUND: vision related sources will be built.")
SET(PRINT_INFO_VU false)
FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(Ceres QUIET) #Ceres is not required
IF(Ceres_FOUND)
MESSAGE("Ceres Library FOUND: Ceres related sources will be built.")
ENDIF(Ceres_FOUND)
FIND_PACKAGE(faramotics QUIET) #faramotics is not required
IF(faramotics_FOUND)
FIND_PACKAGE(GLUT REQUIRED)
FIND_PACKAGE(pose_state_time REQUIRED)
MESSAGE("Faramotics Library FOUND: Faramotics related sources will be built.")
ENDIF(faramotics_FOUND)
FIND_PACKAGE(laser_scan_utils QUIET) #laser_scan_utils is not required
IF(laser_scan_utils_FOUND)
MESSAGE("laser_scan_utils Library FOUND: laser_scan_utils related sources will be built.")
ENDIF(laser_scan_utils_FOUND)
FIND_PACKAGE(raw_gps_utils QUIET) #raw_gps_utils is not required
IF(raw_gps_utils_FOUND)
MESSAGE("raw_gps_utils Library FOUND: raw_gps_utils related sources will be built.")
ENDIF(raw_gps_utils_FOUND)
# Vision Utils
FIND_PACKAGE(vision_utils QUIET)
IF (vision_utils_FOUND)
MESSAGE("vision_utils Library FOUND: vision related sources will be built.")
SET(PRINT_INFO_VU false)
FIND_PACKAGE(OpenCV QUIET)
ENDIF(vision_utils_FOUND)
# Cereal
FIND_PACKAGE(cereal QUIET)
IF(cereal_FOUND)
MESSAGE("cereal Library FOUND: cereal related sources will be built.")
ENDIF(cereal_FOUND)
# YAML with yaml-cpp
INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindYamlCpp.cmake)
IF(YAMLCPP_FOUND)
MESSAGE("yaml-cpp Library FOUND: yaml-cpp related sources will be built.")
......@@ -160,17 +113,6 @@ ELSEIF(YAMLCPP_FOUND)
MESSAGE("yaml-cpp Library NOT FOUND!")
ENDIF(YAMLCPP_FOUND)
#GLOG
INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindGlog.cmake)
IF(GLOG_FOUND)
MESSAGE("glog Library FOUND: glog related sources will be built.")
MESSAGE(STATUS ${GLOG_INCLUDE_DIR})
MESSAGE(STATUS ${GLOG_LIBRARY})
ELSEIF(GLOG_FOUND)
MESSAGE("glog Library NOT FOUND!")
ENDIF(GLOG_FOUND)
# SuiteSparse doesn't have find*.cmake:
FIND_PATH(
Suitesparse_INCLUDE_DIRS
NAMES SuiteSparse_config.h
......@@ -201,550 +143,136 @@ ENDIF()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/internal/config.h.in "${WOLF_CONFIG_DIR}/config.h")
message("CONFIG DIRECTORY ${PROJECT_BINARY_DIR}")
include_directories("${PROJECT_BINARY_DIR}/conf")
# include spdlog (logging library)
FIND_PATH(SPDLOG_INCLUDE_DIR spdlog.h /usr/local/include/spdlog /usr/include/spdlog)
IF (SPDLOG_INCLUDE_DIR)
INCLUDE_DIRECTORIES(${SPDLOG_INCLUDE_DIR})
MESSAGE(STATUS "Found spdlog: ${SPDLOG_INCLUDE_DIR}")
ELSE (SPDLOG_INCLUDE_DIR)
MESSAGE(FATAL_ERROR "Could not find spdlog")
ENDIF (SPDLOG_INCLUDE_DIR)
#INCLUDES SECTION
# ============EXAMPLE==================
INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${wolf_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${vision_utils_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
include_directories("include")
include_directories(.)
# include_directories("templinks")
IF(Ceres_FOUND)
INCLUDE_DIRECTORIES(${CERES_INCLUDE_DIRS})
ENDIF(Ceres_FOUND)
IF(faramotics_FOUND)
INCLUDE_DIRECTORIES(${faramotics_INCLUDE_DIRS})
ENDIF(faramotics_FOUND)
IF(laser_scan_utils_FOUND)
INCLUDE_DIRECTORIES(${laser_scan_utils_INCLUDE_DIRS})
ENDIF(laser_scan_utils_FOUND)
IF(raw_gps_utils_FOUND)
INCLUDE_DIRECTORIES(${raw_gps_utils_INCLUDE_DIRS})
ENDIF(raw_gps_utils_FOUND)
IF(vision_utils_FOUND)
INCLUDE_DIRECTORIES(${vision_utils_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
ENDIF(vision_utils_FOUND)
# cereal
IF(cereal_FOUND)
INCLUDE_DIRECTORIES(${cereal_INCLUDE_DIRS})
ENDIF(cereal_FOUND)
IF(Suitesparse_FOUND)
INCLUDE_DIRECTORIES(${Suitesparse_INCLUDE_DIRS})
ENDIF(Suitesparse_FOUND)
IF(YAMLCPP_FOUND)
INCLUDE_DIRECTORIES(${YAMLCPP_INCLUDE_DIR})
ENDIF(YAMLCPP_FOUND)
IF(GLOG_FOUND)
INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
ENDIF(GLOG_FOUND)
#HEADERS
SET(HDRS_BASE
include/base/diff_drive_tools.h
include/base/diff_drive_tools.hpp
include/base/eigen_assert.h
include/base/eigen_predicates.h
include/base/factory.h
include/base/frame_base.h
include/base/hardware_base.h
include/base/IMU_tools.h
include/base/local_parametrization_angle.h
include/base/local_parametrization_base.h
include/base/local_parametrization_homogeneous.h
include/base/local_parametrization_polyline_extreme.h
include/base/local_parametrization_quaternion.h
include/base/logging.h
include/base/make_unique.h
include/base/map_base.h
include/base/motion_buffer.h
include/base/node_base.h
include/base/pinhole_tools.h
include/base/problem.h
include/base/rotations.h
include/base/singleton.h
include/base/state_angle.h
include/base/state_block.h
include/base/state_homogeneous_3D.h
include/base/state_quaternion.h
include/base/SE3.h
include/base/time_stamp.h
include/base/track_matrix.h
include/base/trajectory_base.h
include/base/wolf.h
include/base/IMU_tools.h
include/base/local_parametrization_polyline_extreme.h
)
SET(HDRS_CAPTURE
include/base/capture/capture_base.h
include/base/capture/capture_buffer.h
include/base/capture/capture_pose.h
include/base/capture/capture_void.h
include/base/capture/capture_motion.h
include/base/capture/capture_GPS_fix.h
include/base/capture/capture_IMU.h
include/base/capture/capture_odom_2D.h
include/base/capture/capture_odom_3D.h
include/base/capture/capture_GPS_fix.h
include/base/capture/capture_IMU.h
include/base/capture/capture_odom_2D.h
include/base/capture/capture_odom_3D.h
include/base/capture/capture_velocity.h
include/base/capture/capture_wheel_joint_position.h
include/vision/capture/capture_image.h
)
SET(HDRS_FACTOR
include/base/factor/factor_block_absolute.h
include/base/factor/factor_container.h
include/base/factor/factor_corner_2D.h
include/base/factor/factor_AHP.h
include/base/factor/factor_epipolar.h
include/base/factor/factor_IMU.h
include/base/factor/factor_fix_bias.h
include/base/factor/factor_GPS_2D.h
include/base/factor/factor_GPS_pseudorange_3D.h
include/base/factor/factor_GPS_pseudorange_2D.h
include/base/factor/factor_odom_2D.h
include/base/factor/factor_odom_2D_analytic.h
include/base/factor/factor_odom_3D.h
include/base/factor/factor_point_2D.h
include/base/factor/factor_point_to_line_2D.h
include/base/factor/factor_pose_2D.h
include/base/factor/factor_pose_3D.h
include/base/factor/factor_quaternion_absolute.h
include/base/factor/factor_relative_2D_analytic.h
include/base/factor/factor_autodiff_trifocal.h
include/base/factor/factor_autodiff_distance_3D.h
include/base/factor/factor_AHP.h
include/base/factor/factor_block_absolute.h
include/base/factor/factor_container.h
include/base/factor/factor_corner_2D.h
include/base/factor/factor_diff_drive.h
include/base/factor/factor_epipolar.h
include/base/factor/factor_IMU.h
include/base/factor/factor_fix_bias.h
include/base/factor/factor_GPS_2D.h
include/base/factor/factor_GPS_pseudorange_3D.h
include/base/factor/factor_GPS_pseudorange_2D.h
include/base/factor/factor_odom_2D.h
include/base/factor/factor_odom_2D_analytic.h
include/base/factor/factor_odom_3D.h
include/base/factor/factor_point_2D.h
include/base/factor/factor_point_to_line_2D.h
include/base/factor/factor_pose_2D.h
include/base/factor/factor_pose_3D.h
include/base/factor/factor_quaternion_absolute.h
include/base/factor/factor_relative_2D_analytic.h
include/base/factor/factor_analytic.h
include/base/factor/factor_autodiff.h
include/base/factor/factor_base.h
include/vision/factor/factor_autodiff_trifocal.h
include/vision/factor/factor_AHP.h
)
SET(HDRS_FEATURE
include/base/feature/feature_corner_2D.h
include/base/feature/feature_GPS_fix.h
include/base/feature/feature_GPS_pseudorange.h
include/base/feature/feature_IMU.h
include/base/feature/feature_odom_2D.h
include/base/feature/feature_polyline_2D.h
include/base/feature/feature_corner_2D.h
include/base/feature/feature_diff_drive.h
include/base/feature/feature_GPS_fix.h
include/base/feature/feature_GPS_pseudorange.h
include/base/feature/feature_IMU.h
include/base/feature/feature_odom_2D.h
include/base/feature/feature_polyline_2D.h
include/base/feature/feature_base.h
include/base/feature/feature_match.h
include/base/feature/feature_pose.h
include/vision/feature/feature_point_image.h
)
SET(HDRS_LANDMARK
include/base/landmark/landmark_base.h
include/base/landmark/landmark_match.h
include/base/landmark/landmark_corner_2D.h
include/base/landmark/landmark_container.h
include/base/landmark/landmark_line_2D.h
include/base/landmark/landmark_polyline_2D.h
include/base/landmark/landmark_corner_2D.h
include/base/landmark/landmark_container.h
include/base/landmark/landmark_line_2D.h
include/base/landmark/landmark_polyline_2D.h
include/vision/landmark/landmark_AHP.h
)
SET(HDRS_PROCESSOR
include/base/processor/processor_capture_holder.h
include/base/processor/processor_diff_drive.h
include/base/processor/processor_frame_nearest_neighbor_filter.h
include/base/processor/processor_IMU.h
include/base/processor/processor_odom_2D.h
include/base/processor/processor_odom_3D.h
include/base/processor/processor_tracker_feature_dummy.h
include/base/processor/processor_tracker_landmark.h
include/base/processor/processor_tracker_landmark_dummy.h
include/base/processor/processor_frame_nearest_neighbor_filter.h
include/base/processor/processor_IMU.h
include/base/processor/processor_odom_2D.h
include/base/processor/processor_odom_3D.h
include/base/processor/processor_tracker_feature_dummy.h
include/base/processor/processor_tracker_landmark_dummy.h
include/base/processor/processor_factory.h
include/base/processor/processor_logging.h
include/base/processor/processor_base.h
include/base/processor/processor_factory.h
include/base/processor/processor_loopclosure_base.h
include/base/processor/processor_motion.h
include/base/processor/processor_tracker_feature.h
include/base/processor/processor_tracker.h
include/vision/processor/processor_tracker_feature_trifocal.h
include/vision/processor/processor_params_image.h
include/vision/processor/processor_tracker_landmark_image.h
include/vision/processor/processor_tracker_feature_image.h
)
SET(HDRS_SENSOR
include/base/sensor/sensor_base.h
include/base/sensor/sensor_camera.h
include/base/sensor/sensor_diff_drive.h
include/base/sensor/sensor_GPS.h
include/base/sensor/sensor_GPS_fix.h
include/base/sensor/sensor_IMU.h
include/base/sensor/sensor_odom_2D.h
include/base/sensor/sensor_odom_3D.h
include/base/sensor/sensor_camera.h
include/base/sensor/sensor_GPS.h
include/base/sensor/sensor_GPS_fix.h
include/base/sensor/sensor_IMU.h
include/base/sensor/sensor_odom_2D.h
include/base/sensor/sensor_odom_3D.h
include/base/sensor/sensor_factory.h
include/vision/sensor/sensor_camera.h
)
SET(HDRS_SOLVER
include/base/solver/solver_manager.h
)
# [Add generic derived header before this line]
SET(HDRS_DTASSC
include/base/track_matrix.h
include/base/association/association_solver.h
include/base/association/association_node.h
include/base/association/association_tree.h
include/base/association/association_nnls.h
)
SET(HDRS_CORE
include/base/capture/capture_base.h
include/base/capture/capture_buffer.h
include/base/capture/capture_pose.h
include/base/capture/capture_void.h
include/base/factor/factor_analytic.h
include/base/factor/factor_autodiff.h
include/base/factor/factor_base.h
include/base/processor/processor_factory.h
include/base/feature/feature_base.h
include/base/feature/feature_match.h
include/base/feature/feature_pose.h
include/base/frame_base.h
include/base/hardware_base.h
include/base/landmark/landmark_base.h
include/base/local_parametrization_angle.h
include/base/local_parametrization_base.h
include/base/local_parametrization_homogeneous.h
include/base/local_parametrization_quaternion.h
include/base/processor/processor_logging.h
include/base/map_base.h
include/base/motion_buffer.h
include/base/node_base.h
include/base/problem.h
include/base/processor/processor_base.h
include/base/processor/processor_loopclosure_base.h
include/base/processor/processor_motion.h
include/base/processor/processor_tracker_feature.h
include/base/processor/processor_tracker.h
include/base/rotations.h
include/base/sensor/sensor_base.h
include/base/processor/processor_factory.h
include/base/singleton.h
include/base/state_angle.h
include/base/state_block.h
include/base/state_homogeneous_3D.h
include/base/state_quaternion.h
include/base/SE3.h
include/base/time_stamp.h
include/base/track_matrix.h
include/base/trajectory_base.h
include/base/wolf.h
)
#SOURCES
SET(SRCS_CORE
src/capture/capture_base.cpp
src/capture/capture_pose.cpp
src/capture/capture_void.cpp
src/factor/factor_analytic.cpp
src/factor/factor_base.cpp
src/feature/feature_base.cpp
src/feature/feature_pose.cpp
src/frame_base.cpp
src/hardware_base.cpp
src/landmark/landmark_base.cpp
src/local_parametrization_base.cpp
src/local_parametrization_homogeneous.cpp
src/local_parametrization_quaternion.cpp
src/map_base.cpp
src/motion_buffer.cpp
src/node_base.cpp
src/problem.cpp
src/processor/processor_base.cpp
src/processor/processor_loopclosure_base.cpp
src/processor/processor_motion.cpp
src/processor/processor_tracker.cpp
src/sensor/sensor_base.cpp
src/state_block.cpp
src/time_stamp.cpp
src/track_matrix.cpp
src/trajectory_base.cpp
)
SET(SRCS_BASE
src/capture/capture_motion.cpp
src/processor/processor_capture_holder.cpp
# examples/test_processor_tracker_landmark.cpp
)
SET(SRCS
src/local_parametrization_polyline_extreme.cpp
test/processor_IMU_UnitTester.cpp
)
SET(SRCS_CAPTURE
src/capture/capture_GPS_fix.cpp
src/capture/capture_IMU.cpp
src/capture/capture_odom_2D.cpp
src/capture/capture_odom_3D.cpp
src/capture/capture_velocity.cpp
src/capture/capture_wheel_joint_position.cpp
src/capture/capture_image.cpp
)
SET(SRCS_FACTOR
)
SET(SRCS_FEATURE
src/feature/feature_corner_2D.cpp
src/feature/feature_diff_drive.cpp
src/feature/feature_GPS_fix.cpp
src/feature/feature_GPS_pseudorange.cpp
src/feature/feature_IMU.cpp
src/feature/feature_odom_2D.cpp
src/feature/feature_polyline_2D.cpp
src/feature/feature_point_image.cpp
)
SET(SRCS_LANDMARK
src/landmark/landmark_corner_2D.cpp
src/landmark/landmark_container.cpp
src/landmark/landmark_line_2D.cpp
src/landmark/landmark_polyline_2D.cpp
src/landmark/landmark_AHP.cpp
)
SET(SRCS_PROCESSOR
src/processor/processor_frame_nearest_neighbor_filter.cpp
src/processor/processor_diff_drive.cpp
src/processor/processor_IMU.cpp
src/processor/processor_odom_2D.cpp
src/processor/processor_odom_3D.cpp
src/processor/processor_tracker_feature.cpp
src/processor/processor_tracker_feature_dummy.cpp
src/processor/processor_tracker_landmark_dummy.cpp
src/processor/processor_tracker_landmark.cpp
src/processor/processor_tracker_feature_trifocal.cpp
src/processor/processor_tracker_feature_image.cpp
src/processor/processor_tracker_landmark_image.cpp
)
SET(SRCS_SENSOR
src/sensor/sensor_camera.cpp
src/sensor/sensor_diff_drive.cpp
src/sensor/sensor_GPS.cpp
src/sensor/sensor_GPS_fix.cpp
src/sensor/sensor_IMU.cpp
src/sensor/sensor_odom_2D.cpp
src/sensor/sensor_odom_3D.cpp
src/sensor/sensor_camera.cpp
)
SET(SRCS_DTASSC
src/association/association_solver.cpp
src/association/association_node.cpp
src/association/association_tree.cpp
src/association/association_nnls.cpp
)
SET(SRCS_SOLVER
src/solver/solver_manager.cpp
)
SET(SRCS_YAML
src/yaml/processor_tracker_feature_trifocal_yaml.cpp
src/yaml/sensor_camera_yaml.cpp
src/yaml/processor_image_yaml.cpp
)
#OPTIONALS
#optional HDRS and SRCS
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
#ceres_wrapper/qr_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
#ceres_wrapper/qr_manager.cpp
src/ceres_wrapper/local_parametrization_wrapper.cpp
)
ELSE(Ceres_FOUND)
SET(HDRS_WRAPPER)
SET(SRCS_WRAPPER)
ENDIF(Ceres_FOUND)
IF (laser_scan_utils_FOUND)
SET(HDRS_CAPTURE ${HDRS_CAPTURE}
include/base/capture/capture_laser_2D.h
)
SET(HDRS_PROCESSOR ${HDRS_PROCESSOR}
include/base/processor/processor_tracker_feature_corner.h
include/base/processor/processor_tracker_landmark_corner.h
include/base/processor/processor_tracker_landmark_polyline.h
)
SET(HDRS_SENSOR ${HDRS_SENSOR}
include/base/sensor/sensor_laser_2D.h
)
SET(SRCS ${SRCS}
src/sensor/sensor_laser_2D.cpp
src/processor/processor_tracker_feature_corner.cpp
src/processor/processor_tracker_landmark_corner.cpp
src/processor/processor_tracker_landmark_polyline.cpp
)
ENDIF(laser_scan_utils_FOUND)
IF (raw_gps_utils_FOUND)
SET(HDRS_CAPTURE ${HDRS_CAPTURE}
include/base/capture/capture_GPS.h
)
SET(HDRS_PROCESSOR ${HDRS_PROCESSOR}
include/base/processor/processor_GPS.h
)
SET(SRCS ${SRCS}
src/capture/capture_GPS.cpp
src/processor/processor_GPS.cpp
)
ENDIF(raw_gps_utils_FOUND)
# Vision
IF (vision_utils_FOUND)
SET(HDRS_CAPTURE ${HDRS_CAPTURE}
include/base/capture/capture_image.h
)
SET(HDRS_FEATURE ${HDRS_FEATURE}
include/base/feature/feature_point_image.h
)
SET(HDRS_PROCESSOR ${HDRS_PROCESSOR}
include/base/processor/processor_tracker_feature_trifocal.h
include/base/processor/processor_params_image.h
include/base/processor/processor_tracker_feature_image.h
include/base/processor/processor_tracker_landmark_image.h
)
SET(HDRS_LANDMARK ${HDRS_LANDMARK}
include/base/landmark/landmark_point_3D.h
include/base/landmark/landmark_AHP.h
)
SET(SRCS ${SRCS}
src/capture/capture_image.cpp
src/feature/feature_point_image.cpp
)
SET(SRCS_LANDMARK ${SRCS_LANDMARK}
src/landmark/landmark_point_3D.cpp
src/landmark/landmark_AHP.cpp
)
SET(SRCS_PROCESSOR ${SRCS_PROCESSOR}
src/processor/processor_tracker_feature_trifocal.cpp
src/processor/processor_tracker_feature_image.cpp
src/processor/processor_tracker_landmark_image.cpp
)
ENDIF(vision_utils_FOUND)
#SUBDIRECTORIES
add_subdirectory(hello_wolf)
IF (cereal_FOUND)
ADD_SUBDIRECTORY(serialization/cereal)
ENDIF(cereal_FOUND)
IF (Suitesparse_FOUND)
#DOES NOTHING?!
#ADD_SUBDIRECTORY(solver_suitesparse)
ENDIF(Suitesparse_FOUND)
# LEAVE YAML FILES ALWAYS IN THE LAST POSITION !!
IF(YAMLCPP_FOUND)
# headers
SET(HDRS ${HDRS}
include/base/yaml/yaml_conversion.h
)
SET(HDRS_YAML ${HDRS_YAML}
include/base/yaml/yaml_conversion.h
)
# sources
SET(SRCS ${SRCS}
src/yaml/processor_odom_3D_yaml.cpp
src/yaml/processor_IMU_yaml.cpp
src/yaml/sensor_camera_yaml.cpp
src/yaml/sensor_odom_3D_yaml.cpp
src/yaml/sensor_IMU_yaml.cpp
)
IF(laser_scan_utils_FOUND)
SET(SRCS ${SRCS}
src/yaml/sensor_laser_2D_yaml.cpp
)
ENDIF(laser_scan_utils_FOUND)
IF(vision_utils_FOUND)
SET(SRCS ${SRCS}
src/yaml/processor_image_yaml.cpp
src/yaml/processor_tracker_feature_trifocal_yaml.cpp
)
ENDIF(vision_utils_FOUND)
ENDIF(YAMLCPP_FOUND)
# ==================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(${PROJECT_NAME}
SHARED
${SRCS_BASE}
${SRCS_CORE}
${SRCS}
ADD_LIBRARY(${PROJECT_NAME}
SHARED
${SRCS_BASE}
${SRCS_CAPTURE}
${SRCS_FACTOR}
${SRCS_FEATURE}
${SRCS_LANDMARK}
${SRCS_PROCESSOR}
${SRCS_SENSOR}
#${SRCS_DTASSC}
${SRCS_DTASSC}
${SRCS_SOLVER}
${SRCS_WRAPPER}
${SRCS_YAML}
)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${wolf_LIBRARY})
#Link the created libraries
#=============================================================
IF (Ceres_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CERES_LIBRARIES})
ENDIF(Ceres_FOUND)
IF (laser_scan_utils_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${laser_scan_utils_LIBRARY})
ENDIF (laser_scan_utils_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${vision_utils_LIBRARY})
IF (raw_gps_utils_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${raw_gps_utils_LIBRARY})
ENDIF (raw_gps_utils_FOUND)
IF (OPENCV_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})
IF (vision_utils_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${vision_utils_LIBRARY})
ENDIF (vision_utils_FOUND)
ENDIF (OPENCV_FOUND)
#Link the created libraries
#===============EXAMPLE=========================
# IF (Ceres_FOUND)
# TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${CERES_LIBRARIES})
# ENDIF(Ceres_FOUND)
IF (YAMLCPP_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${YAMLCPP_LIBRARY})
ENDIF (YAMLCPP_FOUND)
#Build tests
#===============EXAMPLE=========================
IF (GLOG_FOUND)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GLOG_LIBRARY})
ENDIF (GLOG_FOUND)
......@@ -755,13 +283,6 @@ IF (GLOG_FOUND)
ENDIF(BUILD_TESTS)
ENDIF (GLOG_FOUND)
IF(BUILD_EXAMPLES)
#Build examples
MESSAGE("Building examples.")
ADD_SUBDIRECTORY(src/examples)
ENDIF(BUILD_EXAMPLES)
#install library
#=============================================================
......@@ -773,48 +294,53 @@ INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
install(EXPORT ${PROJECT_NAME}Targets DESTINATION lib/cmake/${PROJECT_NAME})
#install headers
INSTALL(FILES ${HDRS_BASE}
DESTINATION include/iri-algorithms/wolf/base)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME})
INSTALL(FILES ${HDRS_DTASSC}
DESTINATION include/iri-algorithms/wolf/base/association)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/association)
INSTALL(FILES ${HDRS_CAPTURE}
DESTINATION include/iri-algorithms/wolf/base/capture)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/capture)
INSTALL(FILES ${HDRS_FACTOR}
DESTINATION include/iri-algorithms/wolf/base/factor)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/factor)
INSTALL(FILES ${HDRS_FEATURE}
DESTINATION include/iri-algorithms/wolf/base/feature)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/feature)
INSTALL(FILES ${HDRS_SENSOR}
DESTINATION include/iri-algorithms/wolf/base/sensor)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/sensor)
INSTALL(FILES ${HDRS_PROCESSOR}
DESTINATION include/iri-algorithms/wolf/base/processor)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/processor)
INSTALL(FILES ${HDRS_LANDMARK}
DESTINATION include/iri-algorithms/wolf/base/landmark)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/landmark)
INSTALL(FILES ${HDRS_WRAPPER}
DESTINATION include/iri-algorithms/wolf/base/ceres_wrapper)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/ceres_wrapper)
INSTALL(FILES ${HDRS_SOLVER_SUITESPARSE}
DESTINATION include/iri-algorithms/wolf/base/solver_suitesparse)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/solver_suitesparse)
INSTALL(FILES ${HDRS_SOLVER}
DESTINATION include/iri-algorithms/wolf/base/solver)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/solver)
INSTALL(FILES ${HDRS_SERIALIZATION}
DESTINATION include/iri-algorithms/wolf/base/serialization)
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/serialization)
INSTALL(FILES ${HDRS_YAML}
DESTINATION include/iri-algorithms/wolf/base/yaml)
INSTALL(FILES "${CMAKE_SOURCE_DIR}/cmake_modules/Findwolf.cmake"
DESTINATION "lib/cmake/${PROJECT_NAME}")
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME}/yaml)
INSTALL(FILES "${CMAKE_SOURCE_DIR}/cmake_modules/Findwolf${PROJECT_NAME}.cmake"
DESTINATION "lib/cmake/${PROJECT_NAME}")
FILE(WRITE vision.found "")
INSTALL(FILES vision.found
DESTINATION include/iri-algorithms/wolf/${PROJECT_NAME})
#install Find*.cmake
configure_file("${CMAKE_SOURCE_DIR}/cmake_modules/wolfConfig.cmake"
"${CMAKE_BINARY_DIR}/wolfConfig.cmake" @ONLY)
configure_file("${CMAKE_SOURCE_DIR}/cmake_modules/wolf${PROJECT_NAME}Config.cmake"
"${CMAKE_BINARY_DIR}/wolf${PROJECT_NAME}Config.cmake" @ONLY)
# configure_file("${CMAKE_SOURCE_DIR}/cmake_modules/Findwolf${PROJECT_NAME}.cmake"
# "${CMAKE_BINARY_DIR}/Findwolf${PROJECT_NAME}.cmake" @ONLY)
INSTALL(FILES "${WOLF_CONFIG_DIR}/config.h"
DESTINATION include/iri-algorithms/wolf/internal)
INSTALL(FILES "${CMAKE_BINARY_DIR}/wolfConfig.cmake" DESTINATION "lib/cmake/${PROJECT_NAME}")
# INSTALL(FILES "${CMAKE_BINARY_DIR}/cmake_modules/Findwolf${PROJECT_NAME}.cmake"
# DESTINATION "lib/cmake/${PROJECT_NAME}")
INSTALL(FILES "${CMAKE_BINARY_DIR}/wolf${PROJECT_NAME}Config.cmake" DESTINATION "lib/cmake/wolf${PROJECT_NAME}")
INSTALL(DIRECTORY ${SPDLOG_INCLUDE_DIRS} DESTINATION "include/iri-algorithms/")
export(PACKAGE ${PROJECT_NAME})
export(PACKAGE wolf_${PROJECT_NAME})
#-END_SRC --------------------------------------------------------------------------------------------------------------------------------
FIND_PACKAGE(Doxygen)
FIND_PATH(IRI_DOC_DIR doxygen.conf ${CMAKE_SOURCE_DIR}/doc/iri_doc/)
......@@ -856,19 +382,3 @@ ELSE(UNIX)
TARGET uninstall
)
ENDIF(UNIX)
IF (UNIX)
SET(CPACK_PACKAGE_FILE_NAME "iri-${PROJECT_NAME}-dev-${CPACK_PACKAGE_VERSION}${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
SET(CPACK_PACKAGE_NAME "iri-${PROJECT_NAME}-dev")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "...Enter something here...")
SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "galenya - labrobotica@iri.upc.edu")
SET(CPACK_SET_DESTDIR "ON") # Necessary because of the absolute install paths
INCLUDE(CPack)
ELSE(UNIX)
ADD_CUSTOM_COMMAND(
COMMENT "packaging only implemented in unix"
TARGET uninstall)
ENDIF(UNIX)
#edit the following line to add the librarie's header files
FIND_PATH(
vision_INCLUDE_DIRS
NAMES vision.found
PATHS /usr/local/include/iri-algorithms/wolf/vision)
#change INCLUDE_DIRS to its parent directory
get_filename_component(vision_INCLUDE_DIRS ${vision_INCLUDE_DIRS} DIRECTORY)
IF(vision_INCLUDE_DIRS)
MESSAGE("Found vision include dirs: ${vision_INCLUDE_DIRS}")
ELSE
MESSAGE("Couldn't find vision include dirs")
ENDIF
FIND_LIBRARY(
vision_LIBRARY
NAMES libvision.so
PATHS /usr/lib /usr/local/lib /usr/local/lib/iri-algorithms)
IF(vision_LIBRARY)
MESSAGE("Found vision lib: ${vision_LIBRARY}")
ELSE
MESSAGE("Couldn't find vision lib")
ENDIF
IF (vision_INCLUDE_DIRS AND vision_LIBRARY)
SET(vision_FOUND TRUE)
ENDIF (vision_INCLUDE_DIRS AND vision_LIBRARY)
IF (vision_FOUND)
IF (NOT vision_FIND_QUIETLY)
MESSAGE(STATUS "Found vision: ${vision_LIBRARY}")
ENDIF (NOT vision_FIND_QUIETLY)
ELSE (vision_FOUND)
IF (wolf_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find vision")
ENDIF (wolf_FIND_REQUIRED)
ENDIF (vision_FOUND)
# This file was copied and adapted from the ceres_solver project
# http://ceres-solver.org/
# wolf - Windowed Localization Frames
# Copyright 2016
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Google Inc. nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Authors:
#
# Config file for wolf - Find wolf & dependencies.
#
# This file is used by CMake when find_package(wolf) is invoked and either
# the directory containing this file either is present in CMAKE_MODULE_PATH
# (if wolf was installed), or exists in the local CMake package registry if
# the wolf build directory was exported.
#
# This module defines the following variables:
#
# wolf_FOUND / wolf_FOUND: True if wolf has been successfully
# found. Both variables are set as although
# FindPackage() only references wolf_FOUND
# in Config mode, given the conventions for
# <package>_FOUND when FindPackage() is
# called in Module mode, users could
# reasonably expect to use wolf_FOUND
# instead.
#
# wolf_VERSION: Version of wolf found.
#
# wolf_INCLUDE_DIRS: Include directories for wolf and the
# dependencies which appear in the wolf public
# API and are thus required to use wolf.
#
# wolf_LIBRARIES: Libraries for wolf and all
# dependencies against which wolf was
# compiled. This will not include any optional
# dependencies that were disabled when wolf was
# compiled.
#
# The following variables are also defined for legacy compatibility
# only. Any new code should not use them as they do not conform to
# the standard CMake FindPackage naming conventions.
#
# wolf_INCLUDES = ${wolf_INCLUDE_DIRS}.
# Called if we failed to find Ceres or any of its required dependencies,
# unsets all public (designed to be used externally) variables and reports
# error message at priority depending upon [REQUIRED/QUIET/<NONE>] argument.
macro(wolf_report_not_found REASON_MSG)
# FindPackage() only references Ceres_FOUND, and requires it to be
# explicitly set FALSE to denote not found (not merely undefined).
set(wolf_vision_FOUND FALSE)
unset(wolf_vision_INCLUDE_DIRS)
unset(wolf_vision_LIBRARIES)
# Reset the CMake module path to its state when this script was called.
set(CMAKE_MODULE_PATH ${CALLERS_CMAKE_MODULE_PATH})
# Note <package>_FIND_[REQUIRED/QUIETLY] variables defined by
# FindPackage() use the camelcase library name, not uppercase.
if (wolf_vision_FIND_QUIETLY)
message(STATUS "Failed to find wolf_vision- " ${REASON_MSG} ${ARGN})
else (wolf_vision_FIND_REQUIRED)
message(FATAL_ERROR "Failed to find wolf_vision - " ${REASON_MSG} ${ARGN})
else()
# Neither QUIETLY nor REQUIRED, use SEND_ERROR which emits an error
# that prevents generation, but continues configuration.
message(SEND_ERROR "Failed to find wolf_vision - " ${REASON_MSG} ${ARGN})
endif ()
return()
endmacro(wolf_report_not_found)
# Record the state of the CMake module path when this script was
# called so that we can ensure that we leave it in the same state on
# exit as it was on entry, but modify it locally.
set(CALLERS_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
# Get the (current, i.e. installed) directory containing this file.
get_filename_component(plugin_CURRENT_CONFIG_DIR
"${CMAKE_CURRENT_LIST_FILE}" PATH)
# Reset CMake module path to the installation directory of this
# script, thus we will use the FindPackage() scripts shipped with
# wolf to find wolf' dependencies, even if the user has equivalently
# named FindPackage() scripts in their project.
set(CMAKE_MODULE_PATH ${plugin_CURRENT_CONFIG_DIR})
# Build the absolute root install directory as a relative path
# (determined when wolf was configured & built) from the current
# install directory for this this file. This allows for the install
# tree to be relocated, after wolf was built, outside of CMake.
get_filename_component(CURRENT_ROOT_INSTALL_DIR
${plugin_CURRENT_CONFIG_DIR}/../../../
ABSOLUTE)
if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
wolf_report_not_found(
"wolf install root: ${CURRENT_ROOT_INSTALL_DIR}, "
"determined from relative path from wolfConfig.cmake install location: "
"${wolf_CURRENT_CONFIG_DIR}, does not exist. Either the install "
"directory was deleted, or the install tree was only partially relocated "
"outside of CMake after wolf was built.")
endif (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
# Set the include directories for wolf (itself).
set(wolf_INCLUDE_DIR "${CURRENT_ROOT_INSTALL_DIR}/include/iri-algorithms")
# if (NOT EXISTS ${wolf_INCLUDE_DIR}/wolf/wolf.h)
if (NOT EXISTS ${vision_INCLUDE_DIRS})
wolf_report_not_found(
"wolf install root: ${CURRENT_ROOT_INSTALL_DIR}, "
"determined from relative path from wolfConfig.cmake install location: "
"${wolf_CURRENT_CONFIG_DIR}, does not contain wolf headers. "
"Either the install directory was deleted, or the install tree was only "
"partially relocated outside of CMake after wolf was built.")
# endif (NOT EXISTS ${wolf_INCLUDE_DIR}/wolf/wolf.h)
endif (NOT EXISTS ${vision_INCLUDE_DIRS})
# list(APPEND wolf_INCLUDE_DIRS ${wolf_INCLUDE_DIR}/wolf)
# Set the version.
set(wolf_VERSION 0.0.1)
# # Import exported wolf targets, if they have not already been imported.
# if (NOT TARGET wolf AND NOT wolf_BINARY_DIR)
# include(${wolf_CURRENT_CONFIG_DIR}/wolfTargets.cmake)
# endif (NOT TARGET wolf AND NOT wolf_BINARY_DIR)
# # Set the expected XX_LIBRARIES variable for FindPackage().
# set(wolf_LIBRARIES wolf)
# Set legacy library variable for backwards compatibility.
# set(wolf_vision_LIBRARY ${vision_LIBRARIES})
set(wolf_vision_LIBRARY ${vision_LIBRARY})
message(${wolf_vision_LIBRARY})
# Make user aware of any compile flags that will be added to their targets
# which use wolf (i.e. flags exported in the wolf target). Only CMake
# versions >= 2.8.12 support target_compile_options().
# if (TARGET ${wolf_LIBRARIES} AND
# NOT CMAKE_VERSION VERSION_LESS "2.8.12")
# get_target_property(wolf_INTERFACE_COMPILE_OPTIONS
# ${wolf_LIBRARIES} INTERFACE_COMPILE_OPTIONS)
# set(wolf_LOCATION "${CURRENT_ROOT_INSTALL_DIR}")
# # Check for -std=c++11 flags.
# if (wolf_INTERFACE_COMPILE_OPTIONS MATCHES ".*std=c\\+\\+11.*")
# message(STATUS "wolf version ${wolf_VERSION} detected here: "
# "${wolf_LOCATION} was built with C++11. wolf target will add "
# "C++11 flags to compile options for targets using it.")
# endif()
# endif()
# Reset CMake module path to its state when this script was called.
set(CMAKE_MODULE_PATH ${CALLERS_CMAKE_MODULE_PATH})
# As we use wolf_REPORT_NOT_FOUND() to abort, if we reach this point we have
# found wolf and all required dependencies.
message(STATUS "Found wolf vision version: ${wolf_VERSION} installed in: ${CURRENT_ROOT_INSTALL_DIR}")
# Set wolf_FOUND to be equivalent to wolf_FOUND, which is set to
# TRUE by FindPackage() if this file is found and run, and after which
# wolf_FOUND is not (explicitly, i.e. undefined does not count) set
# to FALSE.
set(wolf_vision_FOUND TRUE)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment