微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Meson 项目中包含树外资源?

如何解决如何在 Meson 项目中包含树外资源?

一些背景:我将 Meson 用于嵌入式 C 项目。我让它工作 (example),但它不是很干净。

我想解决的具体问题是包含一个树外支持包 (BSP) - 一个文件和 C 文件的树,用作特定的初始化和抽象代码平台。

以前,我一直根据需要将标头从供应商提供的 BSP 复制到我的项目中,这确实有效,但这样做有缺点,最重要的是缺乏可重复性。此外,它会导致代码重复,并且如果错误在 BSP 中,则很难跟踪特定错误的来源。

我尝试过的方法是:

  1. 使用 meson_options.txt 中的选项通过 meson configure 告诉 Meson BSP 在磁盘上的位置。这种方法的问题是Meson在安装过程中抛出一个错误,因为在安装完成之前无法设置选项,因此它找不到必要的目录并拒绝继续。

  2. 使用子项目并重复上述操作 - 这会导致相同的问题。

理想情况下,我希望最终用户能够使用 meson configure 设置 BSP 路径,而不必编辑构建描述(Meson 的全部意义在于用户友好!)。

这可能吗?如果不可能,为什么,以及是否有我应该了解的替代方法/常用做法?

解决方法

在您的问题中,您声明

设置完成后才能设置选项

这不是真的。您可以使用以下语法在介子设置期间传递您想要的任何选项:

$ meson <build dir> -D<option>=<value>

所以我认为您尝试实现选项的第一种方法是正确的,您只需要在设置过程中告诉用户直接设置即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?