ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

This is my CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3) project(beginner_tutorials)

find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation )

System dependencies are found with CMake's conventions

find_package(Boost REQUIRED COMPONENTS system)

Generate messages in the 'msg' folder

add_message_files( FILES Num.msg )

Generate services in the 'srv' folder

add_service_files( FILES AddTwoInts.srv )

Generate actions in the 'action' folder

add_action_files(

FILES

Action1.action

Action2.action

)

Generate added messages and services with any dependencies listed here

generate_messages( DEPENDENCIES std_msgs )

catkin_package( ... CATKIN_DEPENDS message_runtime ... ...)

include_directories( ${catkin_INCLUDE_DIRS} )

Declare a cpp library

add_library(beginner_tutorials

src/${PROJECT_NAME}/beginner_tutorials.cpp

)

Declare a cpp executable

add_executable(beginner_tutorials_node src/beginner_tutorials_node.cpp)

Add cmake target dependencies of the executable/library

as an example, message headers may need to be generated before nodes

add_dependencies(beginner_tutorials_node beginner_tutorials_generate_messages_cpp)

Specify libraries to link a library or executable target against

target_link_libraries(beginner_tutorials_node

${catkin_LIBRARIES}

)

install(PROGRAMS

scripts/my_python_script

DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

Mark executables and/or libraries for installation

install(TARGETS beginner_tutorials beginner_tutorials_node

ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

Mark cpp header files for installation

install(DIRECTORY include/${PROJECT_NAME}/

DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}

FILES_MATCHING PATTERN "*.h"

PATTERN ".svn" EXCLUDE

)

Mark other files for installation (e.g. launch and bag files, etc.)

install(FILES

# myfile1

# myfile2

DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}

)

Add gtest based cpp test target and link libraries

catkin_add_gtest(${PROJECT_NAME}-test test/test_beginner_tutorials.cpp)

if(TARGET ${PROJECT_NAME}-test)

target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})

endif()

Add folders to be run by python nosetests

catkin_add_nosetests(test)

This is my CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3) project(beginner_tutorials)

find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation )

System dependencies are found with CMake's conventions

find_package(Boost REQUIRED COMPONENTS system)

Generate messages in the 'msg' folder

add_message_files( FILES Num.msg )

Generate services in the 'srv' folder

add_service_files( FILES AddTwoInts.srv )

Generate actions in the 'action' folder

add_action_files(

FILES

Action1.action

Action2.action

)

Generate added messages and services with any dependencies listed here

generate_messages( DEPENDENCIES std_msgs )

catkin_package( ... CATKIN_DEPENDS message_runtime ... ...)

include_directories( ${catkin_INCLUDE_DIRS} )

Declare a cpp library

add_library(beginner_tutorials

src/${PROJECT_NAME}/beginner_tutorials.cpp

)

Declare a cpp executable

add_executable(beginner_tutorials_node src/beginner_tutorials_node.cpp)

Add cmake target dependencies of the executable/library

as an example, message headers may need to be generated before nodes

add_dependencies(beginner_tutorials_node beginner_tutorials_generate_messages_cpp)

Specify libraries to link a library or executable target against

target_link_libraries(beginner_tutorials_node

${catkin_LIBRARIES}

)

install(PROGRAMS

scripts/my_python_script

DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

Mark executables and/or libraries for installation

install(TARGETS beginner_tutorials beginner_tutorials_node

ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

Mark cpp header files for installation

install(DIRECTORY include/${PROJECT_NAME}/

DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}

FILES_MATCHING PATTERN "*.h"

PATTERN ".svn" EXCLUDE

)

Mark other files for installation (e.g. launch and bag files, etc.)

install(FILES

# myfile1

# myfile2

DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}

)

Add gtest based cpp test target and link libraries

catkin_add_gtest(${PROJECT_NAME}-test test/test_beginner_tutorials.cpp)

if(TARGET ${PROJECT_NAME}-test)

target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})

endif()

Add folders to be run by python nosetests

catkin_add_nosetests(test)