Makefile для Vala - PullRequest
       62

Makefile для Vala

2 голосов
/ 25 апреля 2020

Я новичок в Vala, учусь писать GTK-приложения для элементарной ОС Hera (на основе Ubuntu 18.04.3). Я не смог найти никакой документации о том, как go написать файл make для моих программ.

Я могу sh организовать мои файлы .vala в папке 'sr c' в папке root проекта. Я также понятия не имею, как указать имя исполняемого файла для компилятора vala. Он просто берет имя из имени исходного файла vala.

Может ли кто-нибудь указать синтаксис для make-файла в Vala?

Ответы [ 2 ]

4 голосов
/ 25 апреля 2020

Компилятор Vala, valac, имеет аргумент --output для именования сгенерированного двоичного файла. Например:

valac my_source_file.vala --output myprogram

Используйте valac --help, чтобы найти дополнительные параметры компилятора.

Простой Makefile может быть:

sources = $(wildcard src/*.vala)

myprogram:
	valac $(sources) --output myprogram

Сохраните это как Makefile в каталоге проекта и введите команду make или make myprogram, и у вас будет собран двоичный файл myprogram. Есть несколько вещей, на которые следует обратить внимание:

  1. Вкладки используются для отступов, в случае если это не так, как в примере
  2. Вам потребуется удалить выходной файл, чтобы восстановить это когда вы вносите какие-либо изменения в исходные файлы
  3. Подстановочный знак используется для включения всех исходных файлов Vala в каталог src

Многие новые проекты Vala используют Meson build system , потому что он очень быстрый и имеет более чистый синтаксис. С помощью Meson простой файл 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, который явно перечисляет источник files:

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

Обратите внимание, что subdir() использует файл meson.build в каталоге src для добавления исходных файлов в переменную sources.

Для создания проекта Сначала настройте каталог сборки. Сделайте это из каталога проекта:

meson setup builddir

Затем соберите проект:

ninja -C builddir

Возможно, вам придется использовать ninja-build для дистрибутивов на основе Red Hat, таких как Fedora. Исполняемый файл myprogram находится в builddir.

Если вы измените исходный файл, ninja -C builddir будет перестроен без необходимости что-либо удалять.

По мере роста вашего проекта обнаружит, что Meson гораздо более управляем, чем использование Makefiles.

3 голосов
/ 25 апреля 2020

Я полагаю, что сегодня мезон - это способ построить Вала. Выезд https://mesonbuild.com/Vala.html

...