cmake_minimum_required(VERSION 2.8.3) project(space_slam) set (CMAKE_BUILD_TYPE Release) ## Compile as C++11, supported in ROS Kinetic and newer add_compile_options(-std=c++11) set(CMAKE_CXX_FLAGS "-std=c++0x -Wno-deprecated") find_package(Boost REQUIRED COMPONENTS system thread) find_package(catkin REQUIRED COMPONENTS roscpp rospy base_msgs tf ) include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() # LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules) find_package(Eigen3 REQUIRED) #generate_messages(DEPENDENCIES std_msgs geometry_msgs nav_msgs) find_package(Ceres REQUIRED COMPONENTS SuiteSparse) INCLUDE_DIRECTORIES(${CERES_INCLUDE_DIRS}) find_package(OpenCV REQUIRED) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) catkin_package( # CATKIN_DEPENDS message_runtime ) include_directories( ${catkin_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ) link_directories( /usr/lib/ /usr/local/lib/ /usr/local/libstatic/ ) INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR} ) add_executable(slam_node ros_node.cpp map/map.cpp odom/odom.cpp slam/slam.cpp filter/filter.cpp pose_graph/pose_cost_function.cpp pose_graph/occupied_space_cost_function.cc pose_graph/pose_graph.cpp real_match_2d/real_match_2d.cpp ceres_matcher/ceres_scan_matcher_2d.cc ceres_matcher/occupied_space_cost_function_2d.cc ) target_link_libraries(slam_node ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${CERES_LIBRARIES} ${OpenCV_LIBRARIES} libspace_lib.so glog # libspace_key.a ) install(TARGETS slam_node slam_node ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) install(DIRECTORY DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} USE_SOURCE_PERMISSIONS )