[Documentation] [TitleIndex] [WordIndex

更改包的默认构建标志

默认构建标志

默认情况下,我们的农场使用dpkg-buildflags命令来获取在Debian/Ubuntu上构建的默认标志。这可以归结为这些旗帜:

为了理解我们为什么来到这里,请看看这个问题: https://github.com/ros-infrastructure/bloom/issues/327

更改构建标志

如果你想要更改只用于构建的标志,比如选择退出-DNDEBUG或选择-O3,那么你将需要在你的发布存储库中修改缺省的debian配置。

在进行此操作之前,至少要使用其他教程中的一篇来发布你的包。

你可以通过编辑debian/rules.em来更改标志。在debian发布分支中为你的包提供的文件。更改标志是在每个包和每个ROS发行版基础上完成的,所以如果你有一个包含3个包的版本存储库,那么你将需要为每个ROS发行版做3个补丁。首先克隆你的发布存储库:

$ git clone https://github.com/<your organization>/<your RELEASE repository>

注意,这是你的发布库,而不是你提交代码的上游存储库。

在克隆你的发布存储库后,更改为包和ROS发行版的分支,你希望更改以下标记:

$ cd <folder you checked it out to>
$ git checkout debian/<rosdistro>/<package_name>

例如,如果你的包名是foo,而你将其更改为Indigo,那么你将执行git checkout debian/indigo/foo之类的操作。

在这个分支中会有一个叫做debian的文件夹,在那个文件夹里会有一个没有扩展的模板文件。其中一个模板将被称为rules.em。你将编辑该文件并提交更改以更改标志。

如果你想退出-DNDEBUG这是默认的,你可以删除模板中的行这样做:

如果您想添加-O3优化标志,覆盖默认的-O2标志,然后添加到DEB_CXXFLAGS_MAINT_APPEND环境变量-O3,如下所示:

一旦你做了任何你想做的修改,然后提交你的改变和推动:

$ git commit -am <some message about how you changed the flags>
$ git push

一旦你推动了这个变更,你将需要为变更发布一个新的debc-inc版本,以便将其传播到工厂。

所以,一旦你对你想要修改的每个包和ROS发行版做了修改,再运行bloom-release:

$ bloom-release -r <rosdistro> -t <rosdistro> <repository name>

这将从<package_version>-0<package_version>-1,例如:0.1.0-00.1.0-1,然后打开一个新的pull请求。一旦合并,工厂将使用你的改变。

你可以通过检查构建工程使用的标记来验证你的更改是否在那里,例如debian/ros-indigo-rviz_0.11.4-1_trusty

你的包的未来版本,例如0.1.00.1.1,将得到你在这里所做的补丁,但是当发布一个新的ROS发行版时,你将需要再次采取这些步骤,因为这样的补丁不会自动传播到新的ROS发行版。


2020-08-01 12:31