Vala 的 Makefile

Makefile for Vala

我是 Vala 的新手,正在学习为初级 OS Hera(基于 Ubuntu 18.04.3)编写 GTK 应用程序。我找不到任何关于如何为我的程序编写 make 文件的文档。

我希望在项目根目录的 'src' 文件夹下组织我的 .vala 文件。我也不知道如何为 vala 编译器指定可执行文件的名称。它只是从 vala 源文件的名称中获取名称。

有人可以为 Vala 中的 makefile 指定语法吗?

我想现在介子是构建vala的方法。查看 https://mesonbuild.com/Vala.html

Vala 编译器 valac--output 参数来命名生成的二进制文件。例如:

valac my_source_file.vala --output myprogram

使用 valac --help 查找更多编译器选项。

一个简单的 Makefile 可以是:

sources = $(wildcard src/*.vala)

myprogram:
	valac $(sources) --output myprogram

在项目目录中将其另存为Makefile并发出命令makemake myprogram,您将生成二进制文件myprogram。有几点需要注意:

  1. 制表符用于缩进,以防示例中没有出现
  2. 当您对源文件进行任何更改时,您需要删除输出文件以重建它
  3. 通配符用于包含 src 目录中的所有 Vala 源文件

许多新的 Vala 项目都在使用 Meson build system,因为它速度非常快并且语法更清晰。使用介子,一个简单的 meson.build 文件可以是:

project('myprogram project', 'vala', 'c')

dependencies = [
    dependency('glib-2.0'),
    dependency('gobject-2.0'),
]

sources = []
subdir('src')

executable('myprogram', sources, dependencies: dependencies)

将其保存在项目目录中,然后在 src 目录中保存一个 meson.build 文件,其中 explicitly lists 源文件:

sources += files(
    'a.vala',
    'b.vala',
    )

请注意,subdir() 使用 src 目录中的 meson.build 文件将源文件附加到 sources 变量。

要构建项目,首先要设置构建目录。从项目目录执行此操作:

meson setup builddir

然后构建项目:

ninja -C builddir

对于基于 Red Hat 的发行版,例如 Fedora,您可能需要使用 ninja-build。可执行文件 myprogram 位于 builddir.

如果您更改源文件,则 ninja -C builddir 将重建而无需删除任何内容。

随着项目的发展,您会发现 Meson 比使用 Makefile 更易于管理。