Meson 示例

构建可执行文件的 Meson 文件如下所示。

project('simple', 'c')
executable('myexe', 'source.c')

所有 Meson 构建定义都以 project 命令开始。它指定项目名称及其使用的编程语言。这里项目名为 simple,并且仅使用 C 编程语言。所有字符串都是单引号。

在下一行,我们定义一个 构建目标,在本例中是一个名为 myexe 的可执行文件。它包含一个源文件。这是用户使用 Meson 编译可执行文件所需的全部代码。

变量完全受支持。上面的代码片段也可以这样声明。

project('simple', 'c')
src = 'source.c'
executable('myexe', src)

大多数可执行文件包含多个源文件。处理此问题的最简单方法是将它们放在数组中。

project('simple', 'c')
src = ['source1.c', 'source2.c', 'source3.c']
executable('myexe', src)

Meson 还支持 关键字参数 的概念。事实上,大多数函数参数只能使用它们来传递。上面的代码片段可以这样重写。

project('simple', 'c')
src = ['source1.c', 'source2.c', 'source3.c']
executable('myexe', sources : src)

这两种格式是等效的,选择哪一种主要取决于个人喜好。

executable 命令实际上返回一个 可执行对象,它表示给定的构建目标。它可以传递给其他函数,例如:

project('simple', 'c')
src = ['source1.c', 'source2.c', 'source3.c']
exe = executable('myexe', src)
test('simple test', exe)

这里我们创建了一个名为 simple test 的单元测试,它使用构建的可执行文件。当使用 meson test 命令运行测试时,将运行构建的可执行文件。如果它返回零,则测试通过。非零返回值表示错误,Meson 将将其报告给用户。

致 Visual Studio 用户

Meson 和 Visual Studio 之间存在轻微的术语差异。Meson 项目 等同于 Visual Studio 解决方案。也就是说,包含所有要构建内容的最顶层内容。另一方面,Visual Studio 项目 等同于 Meson 顶级构建目标,例如可执行文件或共享库。

搜索结果如下