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
:(新增於 0.37.0) 若為 true,則匯出產生的原始碼符號 -
extra_args
:傳遞至資源的其他命令列引數 -
gresource_bundle
:(新增於 0.37.0) 若為 true,則輸出.gresource
檔案而非原始碼 -
install
:(新增於 0.37.0) 若為 true,則安裝 gresource 檔案 -
install_dir
:(新增於 0.37.0) 根據先前的選項,安裝標頭或套件的位置 -
install_header
:(新增於 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
:(新增於 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
:(新增於 0.43.0) 要為程式庫包含的主要 C 標頭名稱,例如glib.h
-
include_directories
:要尋找 gir 檔案的其他包含路徑 -
install
:若為 true,則安裝產生的檔案 -
install_gir
:(新增於 0.61.0) 覆寫install
,是否要安裝產生的 gir -
install_dir_gir
:(新增於 0.35.0) 將 gir 檔案安裝至哪個目錄;(自 0.61.0 起已棄用) 可以為 false 以停用安裝 -
install_typelib
:(新增於 0.61.0) 覆寫install
,是否要安裝產生的 typelib -
install_dir_typelib
:(新增於 0.35.0) 將 typelib 檔案安裝至哪個目錄;(自 0.61.0 起已棄用) 可以為 false 以停用安裝 -
link_with
:要連結的程式庫清單 -
symbol_prefix
:gir 物件的符號字首,例如gtk
,(自 0.43.0 起) 允許使用多個字首的排序清單 -
fatal_warnings
:自 0.55.0 起,將掃描器警告轉換為嚴重錯誤。
傳回包含兩個元素的陣列,即:[gir_target, typelib_target]
gnome.genmarshal()
使用 glib-genmarshal
工具產生 marshal 檔案。第一個引數是輸出檔案的基礎名稱。
-
depends
[](BuildTarget | CustomTarget | CustomTargetIndex):直接傳遞至 CustomTarget (自 0.61.0 起) -
depend_files
[](str | File):直接傳遞至 CustomTarget (自 0.61.0 起) -
extra_args
:(新增於 0.42.0) 要傳遞的其他命令列引數 -
install_dir
:安裝標頭的目錄 -
install_header
:若為 true,則安裝產生的標頭 -
install_dir
:安裝標頭的目錄 -
install_header
:若為 true,則安裝產生的標頭 -
internal
:若為 true,則將產生的原始碼標記為glib-genmarshal
的內部來源 (需要 GLib 2.54) -
nostdinc
:若為 true,則不包含 glib 中的標準封送器 -
prefix
:要用於符號的字首 -
skip_source
:若為 true,則略過原始碼位置註解 -
sources
[](str | File) 必要:要作為輸入的原始碼清單 -
stdinc
:若為 true,則包含 glib 中的標準封送器 -
valist_marshallers
:若為 true,則產生 va_list 封送器
新增於 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
:值結尾
新增於 0.35.0
傳回包含兩個元素的陣列,即:[c_source, header_file]
gnome.mkenums_simple()
使用 glib-mkenums
工具,以大多數基於 GObject 的 C 程式庫所使用的標準樣板,為 GObject 產生列舉 .c
和 .h
檔案。第一個引數是輸出檔案的基礎名稱。
請注意,如果您在任何建置目標的原始碼中 #include
產生的標頭,則必須將產生的標頭新增至建置目標的原始碼清單中,以編纂相依性。對於所有產生的原始碼 (不只是 mkenums_simple
),這點都適用。
產生的原始碼檔案會包含傳遞至 sources 關鍵字引數的所有標頭,並使用相對於目前建置或原始碼目錄的路徑。這表示編譯產生原始碼檔案的目標必須在其 include_directories
中包含目前目錄。自 1.3.0 起,目前目錄以外的 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)
新增於 0.42.0
傳回包含兩個元素的陣列,即:[c_source, header_file]
gnome.compile_schemas()
呼叫時,此方法會編譯目前目錄中的 gschema。請注意,這不是用於安裝 schema,僅在例如在測試期間於本機執行應用程式時有用。
-
build_by_default
:若設定為 true,則會導致此目標在預設情況下建置,也就是說,當叫用純粹的meson compile
時,預設值對所有建置目標類型都是 true -
depend_files
:若變更,應觸發重新編譯的 schema 來源 XML 檔案 (str
、files()
或configure_file()
) 的檔案。
gnome.gdbus_codegen()
將指定的 XML schema 編譯為 gdbus 原始碼。採用兩個位置引數,第一個引數指定建立輸出原始碼和標頭時要使用的基礎名稱,第二個引數指定一個 XML 檔案。
-
sources
:XML 檔案清單 -
interface_prefix
:介面的字首 -
namespace
:介面的命名空間 -
extra_args
:(新增於 0.47.0) 要傳遞的其他命令列引數 -
autocleanup
:(新增於 0.47.0) 如果設定,則產生自動清除程式碼。可以是none
、objects
或all
其中之一 -
object_manager
:(新增於 0.40.0) 若為 true,則產生物件管理程式碼 -
annotations
:(新增於 0.43.0)'ELEMENT'、'KEY'、'VALUE'
註解的 3 個字串清單 -
docbook
:(新增於 0.43.0) 產生'PREFIX'-NAME.xml
docbook 的字首 -
build_by_default
:若設定為 true,則會導致此目標在預設情況下建置,也就是說,當叫用純粹的meson compile
時,預設值對所有建置目標類型都是 true -
install_dir
:(新增於 0.46.0) 根據先前的選項,安裝標頭或套件的位置 -
install_header
:(新增於 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
的額外 include 路徑 -
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 類型快取。
搜尋結果為