package.xml composition:
1 description label
<description>The beginner_tutorials package</description>
Used to describe the package
2 maintainer label
<!-- One maintainer tag required, multiple allowed, one person per tag --> <!-- Example: --> <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> --> <maintainer email="user@todo.todo">user</maintainer>
Provide one or more maintainer information
3 license label
<!-- One license tag required, multiple allowed, one license per tag --> <!-- Commonly used license strings: --> <!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 --> <license>TODO</license>
Fill in the license BSD MIT for the package
4 dependency label
<!-- The *_depend tags are used to specify dependencies --> <!-- Dependencies can be catkin packages or system dependencies --> <!-- Examples: --> <!-- Use build_depend for packages you need at compile time: --> <!-- <build_depend>genmsg</build_depend> --> <!-- Use buildtool_depend for build tool packages: --> <!-- <buildtool_depend>catkin</buildtool_depend> --> <!-- Use exec_depend for packages you need at runtime: --> <!-- <exec_depend>python-yaml</exec_depend> --> <!-- Use test_depend for packages you need only for testing: --> <!-- <test_depend>gtest</test_depend> --> <buildtool_depend>catkin</buildtool_depend> <build_depend>roscpp</build_depend> <build_depend>rospy</build_depend> <build_depend>std_msgs</build_depend>
These dependencies are divided into
buildtool_ Dependent: Specifies that this package requires a self built build system tool. Generally speaking, only catkin is required. In the cross compilation scenario, the build tool dependency is the architecture used to perform the compilation.
build_ Dependent: specifies which packages are required to build this package. As long as you need any files in these packages at build time, you must include these packages. You can include header files from these packages in include at compile time, link to libraries from these packages, or any other resources needed at build time (especially when these packages use find_package() in CMake). In the cross compilation scenario, build dependencies are targeted at the target architecture.
run_ Dependent: specifies which packages are required to run the code in this package or build the library for this package. When you rely on these shared libraries or include the headers of other packages transitively in the public header of this package (especially when these packages are declared as (catkin_) in catkin_package() in CMake) These packages must be added when demands is.
test_ Dependent: specifies only the dependencies attached in the unit test. Packages that have been built or run as dependencies should not be added repeatedly
In addition to the buildtool provided by default in catkin_ Dependent, all listed dependent packages have been added to build_ In the dependent tab. In this example, because all specified dependent packages are required during compilation and run time, each dependent package should be added to run separately_ In the dependent tab:
<buildtool_depend>catkin</buildtool_depend> <build_depend>roscpp</build_depend> <build_depend>rospy</build_depend> <build_depend>std_msgs</build_depend> <exec_depend>roscpp</exec_depend> <exec_depend>rospy</exec_depend> <exec_depend>std_msgs</exec_depend>
5 final package xml
<?xml version="1.0"?> <package format="2"> <name>beginner_tutorials</name> <version>0.1.0</version> <description>The beginner_tutorials package</description> <maintainer email="you@yourdomain.tld">Your Name</maintainer> <license>BSD</license> <url type="website">http://wiki.ros.org/beginner_tutorials</url> <author email="you@yourdomain.tld">Jane Doe</author> <buildtool_depend>catkin</buildtool_depend> <build_depend>roscpp</build_depend> <build_depend>rospy</build_depend> <build_depend>std_msgs</build_depend> <exec_depend>roscpp</exec_depend> <exec_depend>rospy</exec_depend> <exec_depend>std_msgs</exec_depend> </package>
There are some other labels
< name >: the file name of the package
< version >: version number
< URL type = "website" >: URL information