catkin package.xml

catkin package.xml wiki 写的超详细

1.格式2(推荐)

这是新软件包的推荐格式。还建议将旧格式1程序包迁移到格式2.有关从格式1迁移到格式2的说明,请参阅catkin API文档中的从格式1迁移到格式2。Migrating from Format 1 to Format 2 

包清单是一个名为package.xml的XML文件,必须包含在任何符合catkin的包的根文件夹中。 此文件定义有关包的属性,例如包名称,版本号,作者,维护者以及其他catkin包的依赖性。

1.基本结构

每个package.xml文件都将<package>标记作为文档中的根标记。

<package format="2">
</package>

2.必填标签

有最小的一组,需要嵌套标签<package>标签使包装清单完成。

  • <name> - 包名
  • <version> - 包的版本号(需要3点整数)
  • <description> - 一个描述包的内容
  • <maintainer> - 维护包的名字
  • <license> - -软件许可证(S)(如GPL,BSD,ASL)下,代码公布。
<?xml version="1.0"?>
<package format="2">
  <name>foo_core</name>
  <version>0.1.0</version>
  <description>
  This package provides foo capability.
  </description>
  <maintainer email="ivana@osrf.org">Ivana Bildbotz</maintainer>
  <license>Apache 2.0</license>

<buildtool_depend>catkin</buildtool_depend>
<depend>cartographer</depend>

</package>

3.依赖

带有最小标记的包清单不指定对其他包的任何依赖性。包可以有六种类型的依赖项:

  • Build Dependencies 指定构建此包所需的包。 在构建时需要来自这些包的任何文件时就是这种情况。 这可以在编译时包括来自这些包的头文件,链接来自这些包的库或在构建时需要任何其他资源(特别是当这些包是在CMake中的find_package()时)。 在交叉编译方案中,构建依赖关系适用于目标体系结构。
  • Build Export Dependencies 指定针对此包构建库所需的包。 如果您将其标头可传递地包含在此包中的公共头文件中,则会出现这种情况(特别是当这些包在CMake中的catkin_package()中声明为(CATKIN_)DEPENDS时)
  • Execution Dependencies 指定在此包中运行代码所需的包。当您依赖此包中的共享库时就是这种情况(特别是当这些包在CMake中的catkin_package()中声明为(CATKIN_)DEPENDS时)。
  • Test Dependencies  仅为单元测试指定其他依赖项。它们永远不应该复制已经提到的构建或运行依赖项的任何依赖项。
  • Build Tool Dependencies  指定此包需要自己构建的构建系统工具。通常,唯一需要的构建工具是catkin。在交叉编译方案中,构建工具依赖性适用于执行编译的体系结构。
  • Documentation Tool Dependencies  指定此软件包需要生成文档的文档工具。

这六种依赖关系使用以下相应的标签来指定:

<depend>指定依赖关系是构建,导出和执行依赖关系。这是最常用的依赖标记。
<buildtool_depend>
<build_depend>
<build_export_depend>
<exec_depend>
<test_depend>
<doc_depend>

所有包至少有一个依赖关系,构建工具依赖于catkin,如下例所示。

<package>
  <name>foo_core</name>
  <version>1.2.4</version>
  <description>
    This package provides foo capability.
  </description>
  <maintainer email="ivana@osrf.org">Ivana Bildbotz</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>
</package>

关于依赖关系的更多细节可以在这里的 catkin API文档中找到

4.Metapackages

  • 将多个软件包分组为单个逻辑软件包通常很方便。这可以通过metapackages来实现
  • 元包是在package.xml中具有以下导出标记的普通包:
 <export>
   <metapackage />
 </ export>

除了所要求的<buildtool_depends>的依赖,元数据包只能有在包上运行依赖关系,其中它们组。

另外,metapackage有一个必需的,样板CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.8.3)
project(<PACKAGE_NAME>)
find_package(catkin REQUIRED)
catkin_metapackage()

注意:将<PACKAGE_NAME>替换为metapackage的名称。

5.附加标签

  • <url> - 有关该软件包信息的URL,通常是ros.org上的wiki页面。
  • <author> - 包的作者
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值