该glib-mkenums
实用程序解析 C 文件以获取枚举定义,并可用于生成其他文件 - 通常是用于 GObject 的 GType 枚举定义的 C 源文件。相同的实用程序还可用于生成其他文件类型,例如用于 GSettings 模式的 XML。
您可以查看gsettings.m4
GLib 提供的宏文件,以获取glib-mkenums
宏在使用 Autotools 时为您生成的咒语:
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
手册页,其中列出了所有扩展和选项。