95 lines
2.7 KiB
CMake
95 lines
2.7 KiB
CMake
|
## BEGIN_TUTORIAL
|
||
|
## This CMakeLists.txt file for rviz_plugin_tutorials builds both the
|
||
|
## TeleopPanel tutorial and the ImuDisplay tutorial.
|
||
|
##
|
||
|
## First start with some standard catkin stuff.
|
||
|
cmake_minimum_required(VERSION 3.0.2)
|
||
|
project(librviz_tutorial)
|
||
|
|
||
|
set(SDK_PATH "./sdk/")
|
||
|
|
||
|
FILE(GLOB SDK_SRC
|
||
|
"${SDK_PATH}/src/arch/linux/*.cpp"
|
||
|
"${SDK_PATH}/src/hal/*.cpp"
|
||
|
"${SDK_PATH}/src/*.cpp"
|
||
|
)
|
||
|
|
||
|
find_package(catkin REQUIRED COMPONENTS
|
||
|
rviz roscpp std_msgs
|
||
|
rosconsole sensor_msgs # node.cpp
|
||
|
)
|
||
|
|
||
|
|
||
|
catkin_package()
|
||
|
|
||
|
include_directories(
|
||
|
${catkin_INCLUDE_DIRS}
|
||
|
${SDK_PATH}/include
|
||
|
${SDK_PATH}/src
|
||
|
)
|
||
|
|
||
|
link_directories(${catkin_LIBRARY_DIRS})
|
||
|
|
||
|
## This setting causes Qt's "MOC" generation to happen automatically.
|
||
|
set(CMAKE_AUTOMOC ON)
|
||
|
|
||
|
## This plugin includes Qt widgets, so we must include Qt.
|
||
|
## We'll use the version that rviz used so they are compatible.
|
||
|
if(rviz_QT_VERSION VERSION_LESS "5")
|
||
|
message(STATUS "Using Qt4 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
|
||
|
find_package(Qt4 ${rviz_QT_VERSION} EXACT REQUIRED QtCore QtGui)
|
||
|
## pull in all required include dirs, define QT_LIBRARIES, etc.
|
||
|
include(${QT_USE_FILE})
|
||
|
else()
|
||
|
message(STATUS "Using Qt5 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
|
||
|
find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
|
||
|
## make target_link_libraries(${QT_LIBRARIES}) pull in all required dependencies
|
||
|
set(QT_LIBRARIES Qt5::Widgets)
|
||
|
endif()
|
||
|
|
||
|
## I prefer the Qt signals and slots to avoid defining "emit", "slots",
|
||
|
## etc because they can conflict with boost signals, so define QT_NO_KEYWORDS here.
|
||
|
add_definitions(-DQT_NO_KEYWORDS)
|
||
|
|
||
|
## Here we specify the list of source files.
|
||
|
## The generated MOC files are included automatically as headers.
|
||
|
set(SRC_FILES
|
||
|
src/myviz.cpp
|
||
|
src/main.cpp
|
||
|
tools/color.cpp
|
||
|
)
|
||
|
|
||
|
## Add the "myviz" executable and specify the list of source files we
|
||
|
## collected above in ``${SRC_FILES}``.
|
||
|
|
||
|
|
||
|
|
||
|
add_executable(myviz ${SRC_FILES} )
|
||
|
|
||
|
add_executable(rplidarNode src/node.cpp ${SDK_SRC}) # 创建启动laser
|
||
|
target_link_libraries(rplidarNode ${catkin_LIBRARIES})
|
||
|
|
||
|
|
||
|
|
||
|
## Link the myviz executable with whatever Qt libraries have been defined by
|
||
|
## the ``find_package(Qt4 ...)`` line above, or by the
|
||
|
## ``set(QT_LIBRARIES Qt5::Widgets)``, and with whatever libraries
|
||
|
## catkin has included.
|
||
|
|
||
|
target_link_libraries(myviz ${QT_LIBRARIES} ${catkin_LIBRARIES})
|
||
|
|
||
|
## END_TUTORIAL
|
||
|
|
||
|
## Install
|
||
|
install(TARGETS myviz DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
|
||
|
|
||
|
install(TARGETS rplidarNode
|
||
|
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||
|
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||
|
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||
|
)
|
||
|
|
||
|
install(DIRECTORY launch sdk
|
||
|
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
|
||
|
USE_SOURCE_PERMISSIONS
|
||
|
)
|