GNOME 模块
此模块提供构建 GNOME/GLib 程序时所需构建操作的辅助工具。
注意:当您更改源文件时,此处编译命令可能无法正常工作。这是相应编译器的一个错误,它们没有公开所需的依赖项信息。此问题已在上游报告 此错误。在修复此问题之前,您在更改源文件时需要小心。
用法
要使用此模块,只需执行:gnome = import('gnome')
。然后,以下函数将作为名为 gnome
的对象上的方法可用。当然,您可以将 gnome
这个名称替换为任何其他名称。
gnome.compile_resources()
gnome.compile_resources(id: string, input_file: string | File,
build_by_default: bool = false,
c_name: string | None = None,
dependencies: [](File, CustomTarget, CustomTargetIndex) = [],
export: bool = false,
extra_args: []string = [],
gresource_bundle: bool = false,
install_dir: string | None = None,
source_dir: [string] = [],
): (CustomTarget, CustomTarget) | CustomTarget
此函数将 XML 文件中指定的资源编译成可以嵌入到主二进制文件中的代码。类似构建目标,它接受两个位置参数。第一个是资源的名称,第二个是包含资源定义的 XML 文件。如果名称是 foobar
,Meson 将生成一个名为 foobar.h
的头文件,您可以将其包含在您的源代码中。指定的资源会自动添加为生成的目标的依赖项。
-
c_name
:传递给资源编译器作为--c-name
之后的参数 -
dependencies
:用于构建的额外目标,供其依赖 -
export
: (Added 0.37.0) 如果为 true,则导出生成源代码的符号 -
extra_args
:传递给资源的额外命令行参数 -
gresource_bundle
: (Added 0.37.0) 如果为 true,则输出.gresource
文件而不是源代码 -
install
: (Added 0.37.0) 如果为 true,则安装 gresource 文件 -
install_dir
: (Added 0.37.0) 安装头文件或 bundle 的位置,具体取决于之前的选项 -
install_header
: (Added 0.37.0) 如果为 true,则安装头文件 -
source_dir
:资源编译器应该在其中查找文件的目录列表
返回包含以下内容的数组:[c_source, header_file]
或 [gresource_bundle]
示例
gnome = import('gnome')
asresources = gnome.compile_resources(
'as-resources', 'data/asresources.gresource.xml',
source_dir: 'data',
c_name: 'as'
)
executable(
meson.project_name(),
asresources,
dependencies: my_deps,
install: true
)
gnome.generate_gir()
生成 GObject 自省数据。
接受一个或多个位置参数
要为其构建 gir 数据的一个或多个库对象,或一个可执行文件对象。
有几个关键字参数。其中许多参数直接映射到 g-ir-scanner
工具,因此请参阅其文档以获取更多信息。
-
dependencies
:自省扫描期间要使用的依赖项 -
extra_args
:传递给 gir 编译器的命令行参数 -
env
: (Added 1.2.0) 要设置的环境变量,例如{'NAME1': 'value1', 'NAME2': 'value2'}
或['NAME1=value1', 'NAME2=value2']
,或env
对象,它允许更复杂的处理环境。 -
export_packages
:gir 文件导出的额外包 -
sources
:要扫描以获取 gir 数据的源代码列表 -
nsversion
:命名空间版本 -
namespace
:此 gir 对象的命名空间,它决定输出文件 -
identifier_prefix
:gir 对象的标识符前缀,例如Gtk
-
includes
:要包含的 gir 名称列表,也可以是 GirTarget -
header
:(Added 0.43.0) 要为库包含的主要 c 头文件名称,例如glib.h
-
include_directories
:用于查找 gir 文件的额外包含路径 -
install
:如果为 true,则安装生成的文件 -
install_gir
: (Added 0.61.0) 覆盖install
,是否安装生成的 gir -
install_dir_gir
: (Added 0.35.0) 要将 gir 文件安装到的目录;(Deprecated since 0.61.0) 可以为 false 以禁用安装 -
install_typelib
: (Added 0.61.0) 覆盖install
,是否安装生成的 typelib -
install_dir_typelib
: (Added 0.35.0) 要将 typelib 文件安装到的目录;(Deprecated since 0.61.0) 可以为 false 以禁用安装 -
link_with
:要链接的库列表 -
symbol_prefix
:gir 对象的符号前缀,例如gtk
,(Since 0.43.0) 允许使用多个前缀的有序列表 -
fatal_warnings
:Since 0.55.0 将扫描器警告转换为致命错误。
返回包含两个元素的数组,它们是:[gir_target, typelib_target]
gnome.genmarshal()
使用 glib-genmarshal
工具生成一个 marshal 文件。第一个参数是输出文件的基名。
-
depends
[](BuildTarget | CustomTarget | CustomTargetIndex): 直接传递给 CustomTarget (since 0.61.0) -
depend_files
[](str | File): 直接传递给 CustomTarget (since 0.61.0) -
extra_args
: (Added 0.42.0) 要传递的额外命令行参数 -
install_dir
:要安装头文件的目录 -
install_header
:如果为 true,则安装生成的头文件 -
install_dir
:要安装头文件的目录 -
install_header
:如果为 true,则安装生成的头文件 -
internal
:如果为 true,则将生成的源代码标记为glib-genmarshal
的内部 (Requires GLib 2.54) -
nostdinc
:如果为 true,则不包含来自 glib 的标准 marshaler -
prefix
:要用于符号的前缀 -
skip_source
:如果为 true,则跳过源代码位置注释 -
sources
[](str | File) required:要用作输入的源代码列表 -
stdinc
:如果为 true,则包含来自 glib 的标准 marshaler -
valist_marshallers
:如果为 true,则生成 va_list marshaler
Added 0.35.0
返回包含两个元素的数组,它们是:[c_source, header_file]
gnome.mkenums()
使用 glib-mkenums
工具为 GObject 生成枚举文件。第一个参数是输出文件的基名,除非指定了 c_template
和 h_template
。在这种情况下,输出文件将是作为模板传递的值的基名。
此方法本质上是围绕 glib-mkenums
工具的命令行 API 的包装器。它是用于枚举创建功能最全面的方法。
通常,您要么提供模板文件,要么以字符串的形式手动指定各个模板部分。
大多数库和应用程序将使用相同的标准模板,只需进行少量调整,在这种情况下,可以使用 gnome.mkenums_simple()
方便方法。
请注意,如果您在任何构建目标的源代码中 #include
生成的头文件,则必须将生成的头文件添加到构建目标的源代码列表中,以对依赖关系进行编码。这对所有生成源代码都是如此,而不仅仅是 mkenums
。
所有生成的源代码,而不仅仅是 mkenums
。
-
c_template
:用于生成源代码的模板 -
comments
:传递给命令的注释 -
h_template
:用于生成头文件的模板 -
identifier_prefix
:要用于标识符的前缀 -
install_header
:如果为 true,则安装生成的头文件 -
install_dir
:要安装头文件的目录 -
sources
:要使用其创建枚举的源代码列表 -
symbol_prefix
:要用于符号的前缀 -
eprod
:枚举文本 -
fhead
:文件头 -
fprod
:文件文本 -
ftail
:文件尾 -
vhead
:值文本 -
vtail
:值尾
Added 0.35.0
返回包含两个元素的数组,它们是:[c_source, header_file]
gnome.mkenums_simple()
使用 glib-mkenums
工具为 GObject 生成枚举 .c
和 .h
文件,使用大多数基于 GObject 的 C 库使用的标准模板。第一个参数是输出文件的基名。
请注意,如果您在任何构建目标的源代码中 #include
生成的头文件,则必须将生成的头文件添加到构建目标的源代码列表中,以对依赖关系进行编码。这对所有生成源代码都是如此,而不仅仅是 mkenums_simple
。
生成的源文件包含传递给 sources 关键字参数的所有头文件,使用相对于当前构建或源代码目录的路径。这意味着编译生成源文件的目标必须将其当前目录包含在其 include_directories
中。Since 1.3.0 sources
不在当前目录中的 sources
不再需要将这些目录添加到 include_directories
中。
-
body_prefix
:主体文件顶部的额外前缀,例如用于额外包含 -
decorator
:函数声明的可选修饰符,例如GTK_AVAILABLE
或GST_EXPORT
-
function_prefix
:函数名称的额外前缀,例如如果您想在仅供内部使用的函数前添加下划线 -
header_prefix
:头文件顶部的额外前缀,例如用于额外包含(如果您为函数声明指定了修饰符,则可能需要这些包含) -
install_header
:如果为 true,则安装生成的头文件 -
install_dir
:要安装头文件的目录 -
identifier_prefix
:要用于标识符的前缀 -
sources
:要使用其创建枚举的源代码列表 -
symbol_prefix
:要用于符号的前缀
示例
gnome = import('gnome')
my_headers = ['myheader1.h', 'myheader2.h']
my_sources = ['mysource1.c', 'mysource2.c']
# will generate myenums.c and myenums.h based on enums in myheader1.h and myheader2.h
enums = gnome.mkenums_simple('myenums', sources : my_headers)
mylib = library('my', my_sources, enums,
include_directories: my_incs,
dependencies: my_deps,
c_args: my_cargs,
install: true)
Added 0.42.0
返回包含两个元素的数组,它们是:[c_source, header_file]
gnome.compile_schemas()
调用此方法时,它将编译当前目录中的 gschemas。请注意,这不是用于安装模式,仅在本地运行应用程序时有用,例如在测试期间。
-
build_by_default
:设置为 true 时,会导致此目标默认构建,即,当调用 plainmeson compile
时,所有构建目标类型默认值为 true -
depend_files
:模式源 XML 文件的文件 (str
,files()
,或configure_file()
),如果更改这些文件,应触发重新编译。
gnome.gdbus_codegen()
将给定的 XML 模式编译成 gdbus 源代码。接受两个位置参数,第一个指定创建输出源代码和头文件时要使用的基名,第二个指定一个 XML 文件。
-
sources
:XML 文件列表 -
interface_prefix
:接口的前缀 -
namespace
:接口的命名空间 -
extra_args
: (Added 0.47.0) 要传递的额外命令行参数 -
autocleanup
:(Added 0.47.0) 如果设置,则生成自动清理代码。可以是none
、objects
或all
中的任何一个 -
object_manager
:(Added 0.40.0) 如果为 true,则生成对象管理器代码 -
annotations
:(Added 0.43.0) 用于'ELEMENT'
、'KEY'
和'VALUE'
的注释的 3 个字符串列表 -
docbook
:(Added 0.43.0) 用于生成'PREFIX'-NAME.xml
docbooks 的前缀 -
build_by_default
:设置为 true 时,会导致此目标默认构建,即,当调用 plainmeson compile
时,所有构建目标类型默认值为 true -
install_dir
: (Added 0.46.0) 安装头文件或 bundle 的位置,具体取决于之前的选项 -
install_header
: (Added 0.46.0) 如果为 true,则安装头文件
从 0.46.0 开始,此函数返回至少两个自定义目标的列表(按顺序):一个用于源代码,一个用于头文件。如果传递了该关键字参数,列表将包含第三个自定义目标,用于生成的 docbook 文件。
早期版本返回表示所有输出的单个自定义目标。通常,您只需将此目标列表添加到顶级目标的源代码列表中。
示例
gnome = import('gnome')
# The returned source would be passed to another target
gdbus_src = gnome.gdbus_codegen('example-interface',
sources: 'com.example.Sample.xml',
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [
['com.example.Hello()', 'org.freedesktop.DBus.Deprecated', 'true']
],
docbook : 'example-interface-doc'
)
gnome.generate_vapi()
从 gir 创建 VAPI 文件。第一个参数是库的名称。
-
gir_dirs
:要包含的 gir 文件的额外目录 -
install
:如果为 true,则安装 VAPI 文件 -
install_dir
:要安装 VAPI 文件的位置(默认为 datadir/vala/vapi) -
metadata_dirs
:要包含的元数据文件的额外目录 -
packages
:所依赖的 VAPI 包 -
sources
:要从中生成 VAPI 的 gir 源代码 -
vapi_dirs
:要包含的 VAPI 文件的额外目录
返回一个自定义依赖项,可以在构建其他 VAPI 或 Vala 二进制文件时包含。
在 0.36.0 中添加
gnome.yelp()
gnome.yelp(id: string, sources: ...string, sources: []string, media: []string,
languages: []string, symlink_media: bool = true): void
使用 itstool 和 gettext 安装 Yelp 的帮助文档。第一个参数是项目 ID。
此外,可以将源代码作为附加的位置参数传递。但是,这没有记录,也没有正式支持。由于长期存在的一个错误,将源代码作为关键字参数传递会导致忽略位置参数源代码。自 0.60.0 起,在这种情况下会发出警告。
自 0.43.0 起,如果未指定“languages”,则会读取 LINGUAS 文件。
自 0.60.0 起,位置参数源代码的使用已弃用,应使用“sources”关键字参数。将来将删除将源代码作为位置参数传递的功能。
这也为翻译创建了两个目标:help-$project-update-po
和 help-$project-pot
。
-
languages
:(自 0.43.0 起弃用) 用于翻译的语言列表,覆盖 LINGUAS 文件 -
media
:媒体列表,例如图像 -
sources
:页面列表 -
symlink_media
:如果媒体应该创建符号链接而不是复制(自 0.42.0 起默认值为true
)
请注意,非常旧版本的 yelp 可能不支持符号链接的媒体;至少 3.10 应该可以工作。
在 0.36.0 中添加
gnome.gtkdoc()
将 gtkdoc 文档编译并安装到 prefix/share/gtk-doc/html
中。接受一个位置参数:模块的名称。
-
content_files
:内容文件列表 -
dependencies
:依赖项列表 -
fixxref_args
:传递给gtkdoc-fixxref
的参数列表 -
gobject_typesfile
:类型文件列表 -
include_directories
:传递给gtkdoc-scangobj
的额外包含路径 -
ignore_headers
:要忽略的头文件列表 -
html_assets
:HTML 页面资产列表 -
html_args
:传递给gtkdoc-mkhtml
的参数列表 -
install
:如果为 true,则安装生成的文档 -
install_dir
:相对于 gtk-doc html 目录或绝对路径安装生成文档的目录(默认值:模块名称) -
main_xml
:指定主 XML 文件 -
main_sgml
:等于main_xml
-
mkdb_args
:传递给gtkdoc-mkdb
的参数列表 -
namespace
:指定传递给gtkdoc-mkdb
的命名空间 -
module_version
:模块的版本,影响安装位置和 devhelp2 文件位置 -
scan_args
:传递给gtkdoc-scan
的参数列表 -
scanobjs_args
:传递给gtkdoc-scangobj
的参数列表 -
c_args
:(0.48.0 添加) 要传递的其他编译参数 -
src_dir
:要包含的 include_directories -
check
:(自 0.52.0 起) 如果为true
,则在运行单元测试时运行gtkdoc-check
。请注意,这会导致每次构建都重建文档,这通常非常慢。通常,它应该仅在 CI 中启用。
这也创建了一个 $module-doc
目标,可以运行它来构建文档。通常,文档仅在安装时构建。
自 0.52.0 起,返回一个目标对象,该对象可以作为依赖项传递给其他目标,这些目标使用生成的文档文件(例如,在另一个文档的 content_files
中)。
gnome.gtkdoc_html_dir()
以模块名称作为参数,并返回将安装该模块的 HTML 文件的路径。通常与 install_data
一起使用,将额外文件(例如图像)安装到输出目录。
gnome.post_install()
自 0.57.0 起
对各种系统范围的缓存进行安装后更新。即使 gnome.post_install()
从多个子项目中多次调用,每个脚本也只会执行一次。如果在安装期间指定了 DESTDIR
,所有脚本都将被跳过。
它接受以下关键字参数
-
glib_compile_schemas
:如果设置为true
,则更新<prefix>/<datadir>/glib-2.0/schemas
中的gschemas.compiled
文件。 -
gio_querymodules
:相对于prefix
的目录列表,将在其中更新giomodule.cache
文件。 -
gtk_update_icon_cache
:如果设置为true
,则更新<prefix>/<datadir>/icons/hicolor
中的icon-theme.cache
文件。 -
update_desktop_database
:自 0.59.0 起,如果设置为true
,则更新<prefix>/<datadir>/applications
中的桌面文件处理的 MIME 类型缓存。 -
update_mime_database
:自 0.64.0 起,如果设置为true
,则更新<prefix>/<datadir>/mime
中的 MIME 类型缓存。
搜索结果如下: