GLib-GIO-ERROR **:未安装设置架构 'com.github.mfru.vala-todo'
GLib-GIO-ERROR **: Settings schema 'com.github.mfru.vala-todo' is not installed
首先,我是 Vala
、Gtk
和 Meson
的新手,所以我可能看错了方向。
我 运行 在 Pop_OS! 20.10.
我想编译一个支持 GSettings 的小示例 Vala 应用程序。
然而,当用ninja
编译,用sudo ninja install
安装然后执行时,我得到了标题中提到的错误。
似乎即使我的 gschema 文件被复制到 /usr/share/glib-2.0/schemas
,我的 post-install 脚本中的 运行 glib-compile-schemas
似乎没有做任何事情。
我也可以通过 运行 glib-compile-schemas
手动确认,然后使用 dconf 编辑器检查我的设置是否可用,但它们不可用。
data/gschema.xml
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="/com/github/mfru/vala-todo" id="com.github.mfru.vala-todo">
<key name="pos-x" type="i">
<default>360</default>
<summary>Horizontal position</summary>
<description>The saved horizontal position of our window</description>
</key>
<key name="pos-y" type="i">
<default>360</default>
<summary>Vertical position</summary>
<description>The saved vertical position of our window</description>
</key>
<key name="window-width" type="i">
<default>600</default>
<summary>Window width</summary>
<description>The saved width of our window</description>
</key>
<key name="window-height" type="i">
<default>400</default>
<summary>Window height</summary>
<description>The saved height of our window</description>
</key>
</schema>
</schemalist>
data/meson.build
install_data(
'gschema.xml',
install_dir: join_paths (get_option ('datadir'), 'glib-2.0', 'schemas'),
rename: meson.project_name () + '.geschema.xml'
)
meson/post-install.py
#!/usr/bin/env python3
import os
import subprocess
schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
print("Schemadir is", schemadir)
if 'DESTDIR' not in os.environ:
print("Compiling the gsettings schemas...")
subprocess.call(['glib-compile-schemas', schemadir])
我还用 meson build --prefix=/usr --reconfigure
重新配置了介子前缀,因为起初前缀指向 /usr/local
但我系统上所有现有模式都在 /usr/share
下
最后,我希望发生的是我的示例应用程序启动时不会因为缺少 GSettings 而崩溃。
我调查过的资源:
https://mesonbuild.com/Configuring-a-build-directory.html
https://developer.gnome.org/gio/stable/glib-compile-schemas.html
Is there any way to create GSettings schema during installation in Vala?
您的 build.meson
文件中有错字。
应该是.gschema.xml
而不是.geschema.xml
。
首先,我是 Vala
、Gtk
和 Meson
的新手,所以我可能看错了方向。
我 运行 在 Pop_OS! 20.10.
我想编译一个支持 GSettings 的小示例 Vala 应用程序。
然而,当用ninja
编译,用sudo ninja install
安装然后执行时,我得到了标题中提到的错误。
似乎即使我的 gschema 文件被复制到 /usr/share/glib-2.0/schemas
,我的 post-install 脚本中的 运行 glib-compile-schemas
似乎没有做任何事情。
我也可以通过 运行 glib-compile-schemas
手动确认,然后使用 dconf 编辑器检查我的设置是否可用,但它们不可用。
data/gschema.xml
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="/com/github/mfru/vala-todo" id="com.github.mfru.vala-todo">
<key name="pos-x" type="i">
<default>360</default>
<summary>Horizontal position</summary>
<description>The saved horizontal position of our window</description>
</key>
<key name="pos-y" type="i">
<default>360</default>
<summary>Vertical position</summary>
<description>The saved vertical position of our window</description>
</key>
<key name="window-width" type="i">
<default>600</default>
<summary>Window width</summary>
<description>The saved width of our window</description>
</key>
<key name="window-height" type="i">
<default>400</default>
<summary>Window height</summary>
<description>The saved height of our window</description>
</key>
</schema>
</schemalist>
data/meson.build
install_data(
'gschema.xml',
install_dir: join_paths (get_option ('datadir'), 'glib-2.0', 'schemas'),
rename: meson.project_name () + '.geschema.xml'
)
meson/post-install.py
#!/usr/bin/env python3
import os
import subprocess
schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
print("Schemadir is", schemadir)
if 'DESTDIR' not in os.environ:
print("Compiling the gsettings schemas...")
subprocess.call(['glib-compile-schemas', schemadir])
我还用 meson build --prefix=/usr --reconfigure
重新配置了介子前缀,因为起初前缀指向 /usr/local
但我系统上所有现有模式都在 /usr/share
最后,我希望发生的是我的示例应用程序启动时不会因为缺少 GSettings 而崩溃。
我调查过的资源:
https://mesonbuild.com/Configuring-a-build-directory.html
https://developer.gnome.org/gio/stable/glib-compile-schemas.html
Is there any way to create GSettings schema during installation in Vala?
您的 build.meson
文件中有错字。
应该是.gschema.xml
而不是.geschema.xml
。