我正在构建一个包含 gtk 和 libhandy 库的应用程序。我正在尝试将 libhandy 捆绑到我的项目中。我正在使用介子构建系统。要将依赖项添加到介子,我已从此处遵循以下文档1
我已将 libhandy 库克隆到我的项目中,project_root/subprojects/libhandy/
这是我的project_root/meson.build
文件
project('githandytest', 'c',
version: '0.1.0',
meson_version: '>= 0.50.0',
default_options: [ 'warning_level=2',
'c_std=gnu11',
],
)
libhandy_dep = dependency('libhandy-0.0', version: '>= 0.0.13')
if not libhandy_dep.found()
libhandy = subproject(
'libhandy',
install: false,
default_options: [
'examples=false',
'package_subdir=my-project-name',
'tests=false',
]
)
libhandy_dep = libhandy.get_variable('libhandy_dep')
endif
i18n = import('i18n')
config_h = configuration_data()
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
config_h.set_quoted('GETTEXT_PACKAGE', 'githandytest')
config_h.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
configure_file(
output: 'githandytest-config.h',
configuration: config_h,
)
add_project_arguments([
'-I' + meson.build_root(),
], language: 'c')
subdir('data')
subdir('src')
subdir('po')
subdir('subprojects')
meson.add_install_script('build-aux/meson/postinstall.py')
我包含的文件<libhandy.h>
是 main.c,位于project_root/src
Here 是project_root/src/meson.build
githandytest_sources = [
'main.c'
]
githandytest_deps = [
dependency('gio-2.0', version: '>= 2.50'),
dependency('gtk+-3.0', version: '>= 3.22'),
dependency('libhandy-0.0')
]
gnome = import('gnome')
executable('githandytest', githandytest_sources,
dependencies: githandytest_deps,
install: true,
)
自从我使用 flatpak 分发以来,我还向项目清单添加了源代码。
{
"app-id" : "org.example.App",
"runtime" : "org.gnome.Platform",
"runtime-version" : "3.38",
"sdk" : "org.gnome.Sdk",
"command" : "githandytest",
"finish-args" : [
"--share=network",
"--share=ipc",
"--socket=fallback-x11",
"--socket=wayland"
],
"cleanup" : [
"/include",
"/lib/pkgconfig",
"/man",
"/share/doc",
"/share/gtk-doc",
"/share/man",
"/share/pkgconfig",
"*.la",
"*.a"
],
"modules" : [
{
"name" : "githandytest",
"builddir" : true,
"buildsystem" : "meson",
"sources" : [
{
"type" : "git",
"url" : "file:///home/davtyan/Projects/githandytest"
}
]
},
{
"name" : "libhandy",
"buildsystem" : "meson",
"builddir" : true,
"config-opts": [
"-Dexamples=false",
"-Dtests=false"
],
"sources" : [
{
"type" : "git",
"url" : "https://source.puri.sm/Librem5/libhandy.git"
}
]
}
]
}
我在运行项目时遇到的问题是:project_root/meson.build:9:0: ERROR: Dependency "libhandy-0.0" not found, tried pkgconfig and cmake
我为这样一个模糊的问题道歉。我对介子构建系统非常陌生,无法完全弄清楚为什么会发生这种情况。如果有帮助,我正在使用 gnome-builder IDE。