Я пытаюсь создать программу Vala с плоским пакетом. Мне нужно подключиться к mysql-серверу, и поэтому мне нужно связать libmysqlclient
с моим плоским пакетом.
Вот почему я добавил mysql_config
в свой файл meson.build.
project('zeiterfassunggtk', ['c', 'vala'], version: '0.1.0',
meson_version: '>= 0.40.0',
)
i18n = import('i18n')
mysql_config = find_program('mysql_config')
mysql_vapi = meson.get_compiler('vala').find_library('mysql')
mysql_dep = declare_dependency(c_args: run_command([mysql_config, '--cflags']).stdout().split(),
link_args: run_command([mysql_config, '--libs']).stdout().split(),
dependencies: [mysql_vapi])
subdir('data')
subdir('src')
subdir('po')
meson.add_install_script('build-aux/meson/postinstall.py')
Теперь проблема заключается в том, что mysql_config недоступен в среде выполнения flatpak. Поэтому мне нужно связать его с моим плоским пакетом.
Однако документация Flatpak не очень мне помогла.
Модули
Список модулей указывает каждый из модулей, которые должны быть построены как часть процесса сборки. Один из этих модулей — это само приложение, а другие модули — это зависимости и библиотеки, входящие в состав Flatpak. В то время как простые приложения могут указывать только один или два модуля и, следовательно, иметь короткие разделы модулей, некоторые приложения могут объединять множество модулей и, следовательно, иметь длинные разделы модулей.
Раздел модулей GNOME Dictionary короткий, так как он содержит только само приложение и выглядит так:
"modules": [ { "name": "gnome-dictionary", "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/gnome-dictionary/3.26/gnome-dictionary-3.26.0.tar.xz", "sha256": "387ff8fbb8091448453fd26dcf0b10053601c662e59581097bc0b54ced52e9ef" } ] } ]
Как видно, у каждого из перечисленных модулей есть имя (которое можно присвоить произвольно) и список источников. У каждого источника есть тип, и доступные типы включают:
archive - .tar or .zip archive files git - Git repositories bzr - Bazaar repositories file - local file (these are copied into the source directory) dir - local directory (these are copied into the source directory) script - an array of shell commands (these are put in a shellscript file) shell - an array of shell commands that are run during source extraction patch - a patch (are applied to the source directory) extra-data - data that can be downloaded at install time; this can include archive or package files
Для каждого типа источника доступны различные свойства, которые перечислены в Справочнике по командам Flatpak Builder.
Может кто-нибудь сказать мне, как добавить libmysqlclient
в мой плоский пакет и как использовать mysql_config
для установки правильных флагов компилятора для моего плоского пакета.
Это мой манифест (по умолчанию для gnome-builder):
{
"app-id" : "org.gnome.Zeiterfassunggtk",
"runtime" : "org.gnome.Platform",
"runtime-version" : "3.28",
"sdk" : "org.gnome.Sdk",
"command" : "zeiterfassunggtk",
"finish-args" : [
"--share=network",
"--share=ipc",
"--socket=x11",
"--socket=wayland",
"--filesystem=xdg-run/dconf",
"--filesystem=~/.config/dconf:ro",
"--talk-name=ca.desrt.dconf",
"--env=DCONF_USER_CONFIG_DIR=.config/dconf"
],
"build-options" : {
"cflags" : "-O2 -g",
"cxxflags" : "-O2 -g",
"env" : {
"V" : "1"
}
},
"cleanup" : [
"/include",
"/lib/pkgconfig",
"/man",
"/share/doc",
"/share/gtk-doc",
"/share/man",
"/share/pkgconfig",
"/share/vala",
"*.la",
"*.a"
],
"modules" : [
{
"name" : "zeiterfassunggtk",
"buildsystem" : "meson",
"config-opts" : [
"--libdir=lib"
],
"builddir" : true,
"sources" : [
{
"type" : "git",
"url" : "file:///home/g.zehetner/Projekte/ZeiterfassungGtk"
}
]
}
]
}