-
Joan Vallvé Navarro authoredJoan Vallvé Navarro authored
CMakeLists.txt 3.11 KiB
MESSAGE("Starting laser_scan_utils CMakeLists ...")
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#find dependencies.
FIND_PACKAGE(faramotics QUIET) #faramotics is only required for some tests
IF(faramotics_FOUND)
#FIND_PACKAGE(GLUT REQUIRED)
FIND_PACKAGE(pose_state_time REQUIRED)
MESSAGE("Faramotics Library FOUND: Tests requiring it will be built.")
ENDIF(faramotics_FOUND)
FIND_PACKAGE(Eigen3 3.3 REQUIRED)
FIND_PACKAGE(csm QUIET)
FIND_PACKAGE(falkolib QUIET)
#include directories
INCLUDE_DIRECTORIES(. /usr/local/include)
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS})
IF(csm_FOUND)
INCLUDE_DIRECTORIES(${csm_INCLUDE_DIR})
ENDIF(csm_FOUND)
IF(faramotics_FOUND)
INCLUDE_DIRECTORIES(${faramotics_INCLUDE_DIRS})
ENDIF(faramotics_FOUND)
IF(falkolib_FOUND)
MESSAGE(STATUS "FALKO lib found:")
MESSAGE(STATUS " falkolib_INCLUDE_DIRS ${falkolib_INCLUDE_DIRS}")
MESSAGE(STATUS " falkolib_LIBRARY_DIRS ${falkolib_LIBRARY_DIRS}")
MESSAGE(STATUS " falkolib_LIBRARIES ${falkolib_LIBRARIES}")
add_definitions(-DEIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
INCLUDE_DIRECTORIES(${falkolib_INCLUDE_DIRS})
LINK_DIRECTORIES(${falkolib_LIBRARY_DIRS})
ENDIF(falkolib_FOUND)
#headers
SET(HDRS_BASE
laser_scan_utils.h)
SET(HDRS
corner_finder.h
corner_finder_inscribed_angle.h
corner_point.h
grid_2d.h
grid_cluster.h
laser_scan.h
laser_scan_with_params.h
line_finder.h
line_finder_hough.h
line_finder_iterative.h
line_finder_jump_fit.h
line_segment.h
point_set.h
polyline.h
scan_segment.h
loop_closure_base.h
scene_base.h
)
IF(csm_FOUND)
SET(HDRS ${HDRS}
icp.h)
ENDIF(csm_FOUND)
IF(falkolib_FOUND)
SET(HDRS ${HDRS}
corner_falko_2d.h
loop_closure_falko.h
scene_falko.h
match_loop_closure_scene.h)
ENDIF(falkolib_FOUND)
#sources
SET(SRCS
corner_finder.cpp
corner_finder_inscribed_angle.cpp
corner_point.cpp
grid_2d.cpp
grid_cluster.cpp
laser_scan.cpp
laser_scan_with_params.cpp
line_finder.cpp
line_finder_hough.cpp
line_finder_iterative.cpp
line_finder_jump_fit.cpp
line_segment.cpp
point_set.cpp
polyline.cpp
scan_segment.cpp
)
IF(csm_FOUND)
SET(SRCS ${SRCS}
icp.cpp)
ENDIF(csm_FOUND)
IF(falkolib_FOUND)
SET(SRCS ${SRCS}
corner_falko_2d.cpp)
ENDIF(falkolib_FOUND)
# create the shared library
ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
IF(csm_FOUND)
target_link_libraries(${PROJECT_NAME} ${csm_LIBRARY})
ENDIF(csm_FOUND)
IF(falkolib_FOUND)
target_link_libraries(${PROJECT_NAME} ${falkolib_LIBRARY})
ENDIF(falkolib_FOUND)
# Examples
IF(BUILD_DEMOS)
MESSAGE("Building examples.")
ADD_SUBDIRECTORY(examples)
ENDIF(BUILD_DEMOS)
#install library
INSTALL(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
#install headers
INSTALL(FILES ${HDRS_BASE}
DESTINATION include/iri-algorithms/laser_scan_utils)
INSTALL(FILES ${HDRS}
DESTINATION include/iri-algorithms/laser_scan_utils)
#install Find*.cmake
INSTALL(FILES ../Findlaser_scan_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/)