Рассмотрим как написать расширение для файлового менеджера Nautilus более известного как Files в графической оболочке Gnome используя язык программирования C и систему сборки meson.
Создадим папку проекта, внутри папки файл meson.build
project(
'nautilus-hyprpaper',
'c',
version: '1.0'
)
dependencies = [
dependency('libnautilus-extension-4'),
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('gio-2.0')
]
extension_dir = run_command(
'pkg-config',
'--variable=extensiondir',
'libnautilus-extension-4',
check: true
).stdout().strip()
shared_module(
'nautilus-hyprpaper',
'nautilus-hyprpaper.c',
dependencies: dependencies,
install: true,
install_dir: extension_dir
)
Разберём meson.build. Эти строки задают название проекту 'nautilus-hyprpaper', язык программирования C и версию проекта.
project(
'nautilus-hyprpaper',
'c',
version: '1.0'
)
массив dependencies хранит зависимости проекта:
libnautilus-extension-4- библиотека для расширений nautilusglib-2.0библиотека с полезными функциями для работы с распространенными структурами данныхgobject-2.0библиотека поддерживающая ООП в Cgio-2.0библиотека для работы с системой ввода/вывода
dependencies = [
dependency('libnautilus-extension-4'),
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('gio-2.0')
]
эта команда получает путь к папке расширений nautilus и записывает в переменную extension_dir
extension_dir = run_command(
'pkg-config',
'--variable=extensiondir',
'libnautilus-extension-4',
check: true
).stdout().strip()
установим расширение
sudo meson install -C build