在 linux 中生成 Gsettings 架构文件
Generate Gsettings schema files in linux
我正在使用 Gsettings schema 并且有 com.test.gschema.xml
文件。现在模式中的一些键是枚举,因此我需要 com.test.enums.xml
文件。
现在我正在使用 CMakeLists,因此无法使用 gsettings_ENUM_NAMESPACE 和 gsettings_ENUM_FILES。在搜索时,我发现我们可以使用 glib-mkenums 实用程序,但我尝试通过向它提供具有枚举声明和定义的 .c 和 .h 文件来生成 *.enums.xml 文件,但所有它确实会生成一个没有枚举的空文件。
glib-mkenums
实用程序解析 C 文件以获取枚举定义,并可用于生成其他文件——通常是用于 GObject 的 GType 枚举定义的 C 源文件。同样的实用程序也可用于生成其他文件类型,例如 GSettings 模式的 XML。
您可以在 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
手册页,其中列出了所有扩展和选项。
我正在使用 Gsettings schema 并且有 com.test.gschema.xml
文件。现在模式中的一些键是枚举,因此我需要 com.test.enums.xml
文件。
现在我正在使用 CMakeLists,因此无法使用 gsettings_ENUM_NAMESPACE 和 gsettings_ENUM_FILES。在搜索时,我发现我们可以使用 glib-mkenums 实用程序,但我尝试通过向它提供具有枚举声明和定义的 .c 和 .h 文件来生成 *.enums.xml 文件,但所有它确实会生成一个没有枚举的空文件。
glib-mkenums
实用程序解析 C 文件以获取枚举定义,并可用于生成其他文件——通常是用于 GObject 的 GType 枚举定义的 C 源文件。同样的实用程序也可用于生成其他文件类型,例如 GSettings 模式的 XML。
您可以在 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
手册页,其中列出了所有扩展和选项。