在 Linux 中生成 Gsettings 架构文件



我正在使用Gsettings模式并有com.test.gschema.xml文件。现在架构中的一些键是枚举,因此我需要com.test.enums.xml文件。

现在我正在使用CMakeLists,因此无法使用gsettings_ENUM_NAMESPACEgsettings_ENUM_FILES。在搜索时,我发现我们可以使用 glib-mkenums 实用程序,但我尝试使用它生成 *.enums.xml 文件,方法是提供具有枚举声明和定义的 .c 和 .h 文件,但它所做的只是生成一个没有枚举的空文件。

glib-mkenums实用程序解析 C 文件以获取枚举定义,并可用于生成其他文件 — 通常是 GType 枚举定义的 C 源,用于与 GObject 一起使用。同一实用程序还可用于生成其他文件类型,如 XML for GSettings 架构。

您可以查看 GLib 附带的gsettings.m4宏文件,以获取宏在使用 Autotools 时为您生成的glib-mkenums咒语:

glib-mkenums 
--comments '<!-- @comment@ -->' 
--fhead "<schemalist>" 
--vhead "  <@type@ id='$NAMESPACE.@EnumName@'>" 
--vprod "    <value nick='@valuenick@' value='@valuenum@'/>" 
--vtail "  </@type@>" 
--ftail "</schemalist>" 
--output $OUTPUT_FILE 
$INPUT_FILES

其中$NAMESPACE是库的命名空间,也是gsettings_ENUM_NAMESPACE值;$INPUT_FILES包含定义要用作设置值的枚举类型的文件列表;$OUTPUT_FILE是您正在生成的 XML 文件。

我建议阅读glib-mkenums手册页,其中列出了所有扩展和选项。

相关内容

  • 没有找到相关文章