Funktionen
Dieses Dokument listet alle im meson.build verfügbaren Funktionen auf. Sehen Sie sich das Handbuch der Wurzelverzeichnis für einen Überblick über alle Funktionen an.
add_global_arguments()
Fügt globale Argumente zur Compiler-Befehlszeile hinzu.
Signatur
# Adds global arguments to the compiler command line
void add_global_arguments(
str Compiler argument..., # The compiler arguments to add
# Keyword arguments:
language : list[str] [required] # Specifies the language(s) that the arguments should be
native : bool # A boolean specifying whether the arguments should be
)
Normalerweise sollten Sie stattdessen add_project_arguments() verwenden, da dies auch funktioniert, wenn Ihr Projekt als Unterprojekt verwendet wird.
Sie müssen Argumente immer einzeln arg1, arg2, ... übergeben und nicht als Zeichenkette 'arg1 arg2', ...
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Compiler-Argument...) vom Typ .str
Die hinzuzufügenden Compiler-Argumente
Die Funktion add_global_arguments() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
language |
list[str] |
Gibt die Sprache(n) an, auf die die Argumente angewendet werden sollen. Wenn eine Liste von Sprachen angegeben wird, werden die Argumente zu jeder der entsprechenden Compiler-Befehlszeilen hinzugefügt. Beachten Sie, dass es keine Möglichkeit gibt, ein auf diese Weise gesetztes Argument zu entfernen. Wenn Sie ein Argument haben, das nur in einer Teilmenge von Zielen verwendet wird, müssen Sie es in zielspezifischen Flags angeben. |
|
native |
bool |
Ein Boolescher Wert, der angibt, ob die Argumente auf die native oder Cross-Kompilierung angewendet werden sollen. Wenn |
(seit 0.48.0)
|
add_global_link_arguments()
Fügt globale Argumente zur Linker-Befehlszeile hinzu.
Wie add_global_arguments(), aber die Argumente werden an den Linker übergeben.
Signatur
# Adds global arguments to the linker command line
void add_global_link_arguments(
str Linker argument..., # The linker arguments to add
# Keyword arguments:
language : list[str] [required] # Specifies the language(s) that the arguments should be
native : bool # A boolean specifying whether the arguments should be
)
Normalerweise sollten Sie stattdessen add_project_link_arguments() verwenden, da dies auch funktioniert, wenn Ihr Projekt als Unterprojekt verwendet wird.
Sie müssen Argumente immer einzeln arg1, arg2, ... übergeben und nicht als Zeichenkette 'arg1 arg2', ...
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Linker-Argument...) vom Typ .str
Die hinzuzufügenden Linker-Argumente
Die Funktion add_global_link_arguments() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
language |
list[str] |
Gibt die Sprache(n) an, auf die die Argumente angewendet werden sollen. Wenn eine Liste von Sprachen angegeben wird, werden die Argumente zu jeder der entsprechenden Compiler-Befehlszeilen hinzugefügt. Beachten Sie, dass es keine Möglichkeit gibt, ein auf diese Weise gesetztes Argument zu entfernen. Wenn Sie ein Argument haben, das nur in einer Teilmenge von Zielen verwendet wird, müssen Sie es in zielspezifischen Flags angeben. |
|
native |
bool |
Ein Boolescher Wert, der angibt, ob die Argumente auf die native oder Cross-Kompilierung angewendet werden sollen. Wenn |
(seit 0.48.0)
|
add_languages()
Fügt dem Projekt zugehörige Programmiersprachen hinzu.
Dies ist äquivalent dazu, sie in der project-Deklaration zu haben. Diese Funktion wird normalerweise verwendet, um Sprachen hinzuzufügen, die nur unter bestimmten Bedingungen verwendet werden.
Gibt true zurück, wenn alle angegebenen Sprachen gefunden wurden, und false andernfalls.
Wenn native weggelassen wird, können die Sprachen für die Build- oder Host-Maschine verwendet werden, sind aber nie für die Build-Maschine erforderlich. (d. h. es ist äquivalent zu add_languages(*langs*, native: false, required: *required*) und add_languages(*langs*, native: true, required: false). Dieses Standardverhalten kann sich in einer zukünftigen Meson-Version zu native: false ändern.
Signatur
# Add programming languages used by the project
bool add_languages(
str Language..., # The languages to add
# Keyword arguments:
native : bool # If set to `true`, the language will be used to compile for the build
required : bool | feature # If set to `true`, Meson will halt if any of the languages
)
Beispiel
project('foobar', 'c')
if compiling_for_osx
add_languages('objc')
endif
if add_languages('cpp', required : false)
executable('cpp-app', 'main.cpp')
endif
# More code...
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Sprache...) vom Typ .str
Die hinzuzufügenden Sprachen
Die Funktion add_languages() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
native |
bool |
Wenn auf |
(seit 0.54.0) |
erforderlich |
bool | feature |
Wenn auf |
|
add_project_arguments()
Fügt projektspezifische Argumente zur Compiler-Befehlszeile hinzu.
Diese Funktion verhält sich genauso wie add_global_arguments(), außer dass die Argumente nur für das aktuelle Projekt verwendet werden und nicht in anderen Unterprojekten.
Signatur
# Adds project specific arguments to the compiler command line
void add_project_arguments(
str Compiler argument..., # The compiler arguments to add
# Keyword arguments:
language : list[str] [required] # Specifies the language(s) that the arguments should be
native : bool # A boolean specifying whether the arguments should be
)
Sie müssen Argumente immer einzeln arg1, arg2, ... übergeben und nicht als Zeichenkette 'arg1 arg2', ...
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Compiler-Argument...) vom Typ .str
Die hinzuzufügenden Compiler-Argumente
Die Funktion add_project_arguments() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
language |
list[str] |
Gibt die Sprache(n) an, auf die die Argumente angewendet werden sollen. Wenn eine Liste von Sprachen angegeben wird, werden die Argumente zu jeder der entsprechenden Compiler-Befehlszeilen hinzugefügt. Beachten Sie, dass es keine Möglichkeit gibt, ein auf diese Weise gesetztes Argument zu entfernen. Wenn Sie ein Argument haben, das nur in einer Teilmenge von Zielen verwendet wird, müssen Sie es in zielspezifischen Flags angeben. |
|
native |
bool |
Ein Boolescher Wert, der angibt, ob die Argumente auf die native oder Cross-Kompilierung angewendet werden sollen. Wenn |
(seit 0.48.0)
|
add_project_dependencies()
Fügt der Compiler- und Linker-Befehlszeile Argumente hinzu, sodass die angegebene Gruppe von Abhängigkeiten in allen Build-Produkten für dieses Projekt enthalten ist.
Signatur
(seit 0.63.0)
# Adds arguments to the compiler and linker command line, so that the
void add_project_dependencies(
dep dependencies..., # The dependencies to add; if internal dependencies are included, they must not include any built object
# Keyword arguments:
language : list[str] [required] # Specifies the language(s) that the arguments should be
native : bool # A boolean specifying whether the arguments should be
)
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Abhängigkeiten...) vom Typ .dep
Die hinzuzufügenden Abhängigkeiten; wenn interne Abhängigkeiten enthalten sind, dürfen sie kein gebautes Objekt enthalten.
Die Funktion add_project_dependencies() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
language |
list[str] |
Gibt die Sprache(n) an, auf die die Argumente angewendet werden sollen. Wenn eine Liste von Sprachen angegeben wird, werden die Argumente zu jeder der entsprechenden Compiler-Befehlszeilen hinzugefügt. Beachten Sie, dass es keine Möglichkeit gibt, ein auf diese Weise gesetztes Argument zu entfernen. Wenn Sie ein Argument haben, das nur in einer Teilmenge von Zielen verwendet wird, müssen Sie es in zielspezifischen Flags angeben. |
|
native |
bool |
Ein Boolescher Wert, der angibt, ob die Argumente auf die native oder Cross-Kompilierung angewendet werden sollen. Wenn |
(seit 0.48.0)
|
add_project_link_arguments()
Fügt projektspezifische Argumente zur Linker-Befehlszeile hinzu.
Wie add_project_arguments(), aber die Argumente werden an den Linker übergeben.
Signatur
# Adds project specific arguments to the linker command line
void add_project_link_arguments(
str Linker argument..., # The linker arguments to add
# Keyword arguments:
language : list[str] [required] # Specifies the language(s) that the arguments should be
native : bool # A boolean specifying whether the arguments should be
)
Sie müssen Argumente immer einzeln arg1, arg2, ... übergeben und nicht als Zeichenkette 'arg1 arg2', ...
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (Linker-Argument...) vom Typ .str
Die hinzuzufügenden Linker-Argumente
Die Funktion add_project_link_arguments() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
language |
list[str] |
Gibt die Sprache(n) an, auf die die Argumente angewendet werden sollen. Wenn eine Liste von Sprachen angegeben wird, werden die Argumente zu jeder der entsprechenden Compiler-Befehlszeilen hinzugefügt. Beachten Sie, dass es keine Möglichkeit gibt, ein auf diese Weise gesetztes Argument zu entfernen. Wenn Sie ein Argument haben, das nur in einer Teilmenge von Zielen verwendet wird, müssen Sie es in zielspezifischen Flags angeben. |
|
native |
bool |
Ein Boolescher Wert, der angibt, ob die Argumente auf die native oder Cross-Kompilierung angewendet werden sollen. Wenn |
(seit 0.48.0)
|
add_test_setup()
Fügt ein benutzerdefiniertes Test-Setup hinzu. Dieses Setup kann verwendet werden, um die Tests mit einer benutzerdefinierten Konfiguration auszuführen, z. B. unter Valgrind.
Um das Test-Setup zu verwenden, führen Sie meson test --setup=*name* im Build-Verzeichnis aus.
Beachten Sie, dass all diese Optionen auch beim Ausführen des Skripts meson test zur Ausführung von Tests verfügbar sind, anstatt ninja test oder msbuild RUN_TESTS.vcxproj usw., je nach Backend.
Signatur
# Add a custom test setup
void add_test_setup(
str name, # The name of the test setup
# Keyword arguments:
env : env | list[str] | dict[str] # environment variables to set
exclude_suites : list[str] # A list of test suites that should be excluded when using this setup
exe_wrapper : list[str | external_program] # The command or script followed by the arguments to it
gdb : bool # If `true`, the tests are also run under `gdb`
is_default : bool # Set whether this is the default test setup
timeout_multiplier : int # A number to multiply the test timeout with
)
Argumente
Die Funktion add_test_setup() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
name |
str |
Der Name des Test-Setups |
|
Schließlich akzeptiert add_test_setup() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
env |
env | list[str] | dict[str] |
zu setzende Umgebungsvariablen, wie z. B. |
|
exclude_suites |
list[str] |
Eine Liste von Test-Suiten, die bei Verwendung dieses Setups ausgeschlossen werden sollen. Suiten, die in der Option |
(seit 0.57.0) |
exe_wrapper |
list[str | external_program] |
Der Befehl oder das Skript, gefolgt von seinen Argumenten |
|
gdb |
bool |
Wenn |
|
is_default |
bool |
Legt fest, ob dies das Standard-Test-Setup ist. Wenn |
(seit 0.49.0)
|
timeout_multiplier |
int |
Eine Zahl, mit der das Test-Timeout multipliziert wird. Seit 0.57, wenn timeout_multiplier |
|
alias_target()
Diese Funktion erstellt ein neues Top-Level-Ziel. Wie alle Top-Level-Ziele integriert sich dieses in das ausgewählte Backend. Zum Beispiel können Sie es mit meson compile target_name ausführen. Dies ist ein Dummy-Ziel, das keinen Befehl ausführt, aber sicherstellt, dass alle Abhängigkeiten erstellt werden. Abhängigkeiten können beliebige Build-Ziele sein. Seit 0.60.0 umfasst dies run_tgt.
Seit 1.6.0 erstellt die Übergabe eines both_libs-Objekts sowohl statische als auch dynamische Bibliotheken.
Signatur
(seit 0.52.0)
# This function creates a new top-level target
alias_tgt alias_target(
str target_name, # The name of the alias target
tgt Dep..., # The targets to depend on
)
Argumente
Die Funktion alias_target() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der Name des Alias-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 1 und unendlich variable Argumente (Dep...) vom Typ .tgt
Die Abhängigkeitsziele
assert()
Bricht mit einer Fehlermeldung ab, wenn condition zu false ausgewertet wird.
Signatur
# Abort with an error message if `condition` evaluates to `false`
void assert(
bool condition, # Abort if this evaluates to `false`
str [message], # The error message to print
)
Das Argument message ist seit 0.53.0 optional und gibt standardmäßig die Bedingungsanweisung aus.
Argumente
Die Funktion assert() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
Bedingung |
bool |
Bricht ab, wenn dies zu |
|
Nachricht |
str |
Die auszugebende Fehlermeldung. |
[optional] |
benchmark()
Erstellt ein Benchmark-Element, das ausgeführt wird, wenn das Benchmark-Ziel aufgerufen wird. Das Verhalten dieser Funktion ist identisch mit test(), außer dass
- benchmark() hat keinen
is_parallel-Schlüsselwort, da Benchmarks nicht parallel ausgeführt werden - benchmark() fügt nicht automatisch die Umgebungsvariable
MALLOC_PERTURB_hinzu
Definierte Benchmarks können auf Backend-unabhängige Weise ausgeführt werden, indem meson test --benchmark im Build-Verzeichnis aufgerufen wird, oder durch die Verwendung von Backend-spezifischen Befehlen wie ninja benchmark oder msbuild RUN_TESTS.vcxproj.
Signatur
# Creates a benchmark item that will be run when the benchmark target is
void benchmark(
str name, # The *unique* test id
exe | jar | external_program | file | custom_tgt | custom_idx executable, # The program to execute
# Keyword arguments:
args : list[str | file | tgt | external_program] # Arguments to pass to the executable
depends : list[build_tgt | custom_tgt] # specifies that this test depends on the specified
env : env | list[str] | dict[str] # environment variables to set, such as `['NAME1=value1',
priority : int # specifies the priority of a test
protocol : str # specifies how the test results are parsed and can
should_fail : bool # when true the test is considered passed if the
suite : str | list[str] # `'label'` (or list of labels `['label1', 'label2']`)
timeout : int # the amount of seconds the test is allowed to run, a test
verbose : bool # if true, forces the test results to be logged as if `--verbose` was passed
workdir : str # absolute path that will be used as the working directory
)
Vor 0.52.0 warnte benchmark, dass depends und priority nicht unterstützt wurden, dies ist falsch.
Argumente
Die Funktion benchmark() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
name |
str |
Die *eindeutige* Test-ID |
|
ausführbare Datei |
exe | jar | external_program | file | custom_tgt | custom_idx |
Das auszuführende Programm. (Seit 1.4.0) Ein benutzerdefiniertes Ziel wird ebenfalls akzeptiert. |
|
Schließlich akzeptiert benchmark() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
args |
list[str | file | tgt | external_program] |
Argumente, die an die ausführbare Datei übergeben werden sollen |
|
abhängig |
list[build_tgt | custom_tgt] |
gibt an, dass dieser Test von den angegebenen Zielen abhängt, obwohl er keines davon als Befehlszeilenargument nimmt. Dies ist für Fälle gedacht, in denen der Test diese Ziele intern findet, z. B. Plugins oder Globbing. Diese Ziele werden erstellt, bevor der Test ausgeführt wird, auch wenn sie |
(seit 0.46.0) |
env |
env | list[str] | dict[str] |
Umgebungsvariablen, die gesetzt werden sollen, wie z. B. |
|
Priorität |
int |
gibt die Priorität eines Tests an. Tests mit höherer Priorität werden *gestartet* vor Tests mit niedrigerer Priorität. Die Startreihenfolge von Tests mit identischen Prioritäten ist Implementierungs-abhängig. Die Standardpriorität ist 0, negative Zahlen sind zulässig. |
(seit 0.52.0)
|
Protokoll |
str |
gibt an, wie die Testergebnisse analysiert werden und kann einer von
|
(seit 0.50.0)
|
sollte_fehlen |
bool |
Wenn true, gilt der Test als erfolgreich, wenn das ausführbare Programm einen Rückgabewert ungleich Null zurückgibt (d. h. einen Fehler meldet) |
|
Suite |
str | list[str] |
|
|
Timeout |
int |
Die Anzahl der Sekunden, die der Test laufen darf. Ein Test, der seine Zeitgrenze überschreitet, gilt immer als fehlgeschlagen. Standardmäßig 30 Sekunden. Seit 0.57, wenn timeout |
|
ausführlich |
bool |
Wenn true, werden die Testergebnisse zwangsweise protokolliert, als ob |
(seit 0.62.0)
|
Arbeitsverzeichnis |
str |
Absoluter Pfad, der als Arbeitsverzeichnis für den Test verwendet wird |
|
both_libraries()
Erstellt sowohl eine statische als auch eine dynamische Bibliothek mit den angegebenen Quellen. Positions- und Schlüsselwortargumente sind ansonsten die gleichen wie für library(). Quellcode-Dateien werden nur einmal kompiliert und Objektdateien werden zum Erstellen beider Bibliotheken wiederverwendet, es sei denn, die Benutzeroption b_staticpic oder das Argument pic sind auf false gesetzt, in welchem Fall die Quellen zweimal kompiliert werden.
Signatur
(seit 0.46.0)
# Builds both a static and shared library with the given sources
both_libs both_libraries(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
<lang>_shared_args : list[str] # Arguments that are only passed to a shared library
<lang>_static_args : list[str] # Arguments that are only passed to a static library
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
darwin_versions : str | int | list[str] # Defines the `compatibility version` and `current version` for the dylib on macOS
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
pic : bool # Builds the library as positional independent code
prelink : bool # If `true` the object files in the target will be prelinked,
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
soversion : str | int # A string or integer specifying the soversion of this shared library,
vala_args : list[str | file] # Compiler flags for Vala
vala_shared_args : list[str | file] # Arguments that are only passed to a shared library
vala_static_args : list[str | file] # Arguments that are only passed to a static library
version : str # A string specifying the version of this shared library,
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
Argumente
Die Funktion both_libraries() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert both_libraries() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
<lang>_shared_args |
list[str] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden |
(seit 1.3.0) |
<lang>_static_args |
list[str] |
Argumente, die nur an eine statische Bibliothek übergeben werden |
(seit 1.3.0) |
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
darwin_versions |
str | int | list[str] |
Definiert die |
(seit 0.48.0) |
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
pic |
bool |
Erstellt die Bibliothek als positionsunabhängigen Code (damit sie in eine dynamische Bibliothek gelinkt werden kann). Diese Option hat keine Auswirkung unter Windows und OS X, da sie unter Windows nicht sinnvoll ist und PIC unter OS X nicht deaktiviert werden kann. |
(seit 0.36.0) |
prelink |
bool |
Wenn |
(seit 0.57.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
soversion |
str | int |
Eine Zeichenkette oder Ganzzahl, die die Soversion dieser dynamischen Bibliothek angibt, z. B. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
vala_shared_args |
list[str | file] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
vala_static_args |
list[str | file] |
Argumente, die nur an eine statische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
Version |
str |
Ein String, der die Version dieser Shared Library angibt, z. B. |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). (Seit 1.3.0) |
|
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
build_target()
Erstellt ein Build-Ziel, dessen Typ dynamisch mit dem Schlüsselwortargument target_type festgelegt werden kann.
target_type kann eingestellt werden auf
-
executable(sieheexecutable()) -
shared_library(sieheshared_library()) -
shared_module(sieheshared_module()) -
static_library(siehestatic_library()) -
both_libraries(sieheboth_libraries()) -
library(siehelibrary()) -
jar(siehejar())*
Diese Deklaration
executable(<arguments and keyword arguments>)
entspricht diesem
build_target(<arguments and keyword arguments>, target_type : 'executable')
Die Listen für die Schlüsselwortargumente (wie sources, objects und dependencies) werden immer abgeflacht, was bedeutet, dass Sie beim Erstellen der endgültigen Liste Listen beliebig verschachteln und hinzufügen können.
Das zurückgegebene Objekt hat auch Methoden, die in build_tgt dokumentiert sind.
* "jar" ist veraltet, da es sich grundlegend von den anderen build_target-Typen unterscheidet.
Signatur
# Creates a build target whose type can be set dynamically with the
build_tgt build_target(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
<lang>_shared_args : list[str] # Arguments that are only passed to a shared library
<lang>_static_args : list[str] # Arguments that are only passed to a static library
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
darwin_versions : str | int | list[str] # Defines the `compatibility version` and `current version` for the dylib on macOS
dependencies : list[dep] # one or more dependency objects
export_dynamic : bool # when set to true causes the target's symbols to be
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implib : bool | str # When set to true, an import library is generated for the
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
java_resources : structured_src # Resources to be added to the jar
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
main_class : str # Main class for running the built jar
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
pic : bool # Builds the library as positional independent code
pie : bool # Build a position-independent executable
prelink : bool # If `true` the object files in the target will be prelinked,
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
soversion : str | int # A string or integer specifying the soversion of this shared library,
target_type : str # The actual target type to build
vala_args : list[str | file] # Compiler flags for Vala
vala_shared_args : list[str | file] # Arguments that are only passed to a shared library
vala_static_args : list[str | file] # Arguments that are only passed to a static library
version : str # A string specifying the version of this shared library,
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
Argumente
Die Funktion build_target() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert build_target() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
<lang>_shared_args |
list[str] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden |
(seit 1.3.0) |
<lang>_static_args |
list[str] |
Argumente, die nur an eine statische Bibliothek übergeben werden |
(seit 1.3.0) |
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
darwin_versions |
str | int | list[str] |
Definiert die |
(seit 0.48.0) |
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
export_dynamic |
bool |
Wenn auf true gesetzt, werden die Symbole des Ziels dynamisch exportiert, sodass Module, die mit der Funktion |
(seit 0.45.0) |
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implib |
bool | str |
Wenn auf true gesetzt, wird eine Importbibliothek für die ausführbare Datei generiert (der Name der Importbibliothek basiert auf exe_name). Alternativ, wenn auf einen String gesetzt, gibt dies den Basisnamen für die Importbibliothek an. Die Importbibliothek wird verwendet, wenn das zurückgegebene Build-Ziel-Objekt an anderer Stelle in |
(seit 0.42.0) |
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
java_resources |
structured_src |
Ressourcen, die zum Jar hinzugefügt werden sollen |
(seit 0.62.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
main_class |
str |
Hauptklasse zum Ausführen des kompilierten Jars |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
pic |
bool |
Erstellt die Bibliothek als positionsunabhängigen Code (damit sie in eine dynamische Bibliothek gelinkt werden kann). Diese Option hat keine Auswirkung unter Windows und OS X, da sie unter Windows nicht sinnvoll ist und PIC unter OS X nicht deaktiviert werden kann. |
(seit 0.36.0) |
pie |
bool |
Erstellt eine positionunabhängige ausführbare Datei. |
(seit 0.49.0) |
prelink |
bool |
Wenn |
(seit 0.57.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
soversion |
str | int |
Eine Zeichenkette oder Ganzzahl, die die Soversion dieser dynamischen Bibliothek angibt, z. B. |
|
target_type |
str |
Der tatsächliche zu erstellende Zieltyp |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
vala_shared_args |
list[str | file] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
vala_static_args |
list[str | file] |
Argumente, die nur an eine statische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
Version |
str |
Ein String, der die Version dieser Shared Library angibt, z. B. |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). Dies kann verwendet werden, um offenzulegen, welche Funktionen ein von einer ausführbaren Datei geladenes |
(seit 1.3.0) |
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
configuration_data()
Erstellt ein leeres Konfigurationsobjekt. Sie sollten Ihre Konfiguration mit Methodenaufrufen von cfg_data hinzufügen und sie schließlich in einem Aufruf von configure_file() verwenden.
Signatur
# Creates an empty configuration object
cfg_data configuration_data(
dict[str | bool | int] [data], # Optional dictionary to specify an initial data set
)
Argumente
Die Funktion configuration_data() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
data |
dict[str | bool | int] |
Optionales Wörterbuch zur Angabe eines anfänglichen Datensatzes. Wenn angegeben, wird jedes Schlüssel-Wert-Paar in das |
(seit 0.49.0) [optional] |
configure_file()
Diese Funktion kann in drei Modi ausgeführt werden, abhängig von den übergebenen Schlüsselwortargumenten.
Wenn ein cfg_data-Objekt an das Schlüsselwortargument configuration: übergeben wird, nimmt es eine Vorlagendatei als input: (optional) und erzeugt die output: (erforderlich), indem Werte aus den Konfigurationsdaten ersetzt werden, wie in der Dokumentation zur Konfigurationsdatei beschrieben. (seit 0.49.0) Anstelle eines cfg_data-Objekts kann ein Wörterbuch übergeben werden.
Wenn eine Liste von Strings an das Schlüsselwortargument command: übergeben wird, nimmt sie jede Quelldatei oder konfigurierte Datei als input: und geht davon aus, dass die output: durch Ausführen des angegebenen Befehls erzeugt wird.
(seit 0.47.0) Wenn das Schlüsselwortargument copy: auf true gesetzt ist, kopiert diese Funktion die in input: bereitgestellte Datei in eine Datei im Build-Verzeichnis mit dem Namen output: im aktuellen Verzeichnis.
Signatur
# This function can run in three modes depending on the keyword arguments
file configure_file(
capture : bool # When this argument is set to true,
command : list[str | file] # As explained above, if specified, Meson does not create
configuration : cfg_data | dict[str | int | bool] # As explained above, when passed this will provide the replacement
copy : bool # As explained above, if specified Meson only
depfile : str # A dependency file that the command can write listing
encoding : str # Set the file encoding for the input and output file
format : str # The format of defines
input : str | file # The input file name
install : bool # When true, this generated file is installed during
install_dir : str # The subdirectory to install the generated file to
install_mode : list[str | int] # Specify the file mode in symbolic format
install_tag : str # A string used by the `meson install --tags` command
macro_name : str # When specified, macro guards will be used instead of '#pragma once'
output : str # The output file name
output_format : str # The format of the output to generate when no input
)
Das Schlüsselwortargument install_mode ignorierte Ganzzahlwerte zwischen 0.62 und 1.1.0.
Argumente
Die Funktion configure_file() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
capture |
bool |
Wenn dieses Argument auf true gesetzt ist, erfasst Meson |
(seit 0.41.0)
|
command |
list[str | file] |
Wie oben erläutert, wenn dies angegeben ist, erstellt Meson die Datei nicht selbst, sondern führt den angegebenen Befehl aus, was Ihnen eine vollständig benutzerdefinierte Dateigenerierung ermöglicht. (seit 0.52.0) Der Befehl kann Dateiobjekte enthalten und mehr als eine Datei kann dem Schlüsselwortargument |
|
configuration |
cfg_data | dict[str | int | bool] |
Wie oben erläutert, liefert dies beim Übergeben die Ersetzungsdaten für die Eingabedatei (falls vorhanden) oder Schlüssel-Wert-Paare, die in die Ausgabe geschrieben werden sollen. |
|
copy |
bool |
Wie oben erläutert, kopiert Meson die Datei von Input nach Output, wenn dies angegeben ist. |
(seit 0.47.0)
|
depfile |
str |
Eine Abhängigkeitsdatei, die der Befehl schreiben kann und die alle zusätzlichen Dateien auflistet, von denen dieses Ziel abhängt. Eine Änderung in einer dieser Dateien löst eine Neukonfiguration aus. |
(seit 0.52.0) |
encoding |
str |
Legt die Dateikodierung für die Eingabe- und Ausgabedatei fest. Die unterstützten Kodierungen sind die von Python 3, siehe standard-encodings. |
(seit 0.47.0)
|
format |
str |
Das Format von Defines. Es ist standardmäßig |
(seit 0.46.0)
|
input |
str | file |
Der Name der Eingabedatei. Wenn er im Konfigurationsmodus nicht angegeben ist, werden alle Variablen im |
|
installieren |
bool |
Wenn true, wird diese generierte Datei während des Installationsschritts installiert und |
(seit 0.50.0)
|
install_dir |
str |
Das Unterverzeichnis, in das die generierte Datei installiert werden soll (z. B. |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_tag |
str |
Ein String, der vom Befehl |
(seit 0.60.0) |
macro_name |
str |
Wenn angegeben, werden Makroschutzvorrichtungen anstelle von '#pragma once' verwendet. Der Name des Makroschutzes ist der angegebene Name. |
(seit 1.3.0) |
output |
str |
Der Name der Ausgabedatei. (seit 0.41.0) kann |
|
output_format |
str |
Das Ausgabeformat, das generiert wird, wenn keine Eingabe angegeben wurde. Es ist standardmäßig |
(seit 0.47.0) |
custom_target()
Erstellt ein benutzerdefiniertes Top-Level-Build-Ziel. Das einzige Positionsargument ist der Name dieses Ziels und es darf keine Pfadtrennzeichen (/ oder \) enthalten. Der Name des benutzerdefinierten Ziels wird möglicherweise nicht von jedem Backend verwendet. Beispielsweise funktioniert mit dem Ninja-Backend, subdir/meson.build mit dem folgenden Beispiel, ninja -C builddir foo oder ninja -C builddir subdir/foo nicht, sondern stattdessen ninja -C builddir subdir/file.txt. Jedoch ist meson compile subdir/foo akzeptiert.
custom_target('foo', output: 'file.txt', ...)
Seit 0.60.0 ist das Namensargument optional und wird standardmäßig auf den Basisnamen der ersten Ausgabe gesetzt (file.txt im obigen Beispiel).
Die Liste der Strings, die dem Schlüsselwortargument command übergeben werden, akzeptieren die folgenden speziellen String-Ersetzungen
-
@INPUT@: der vollständige Pfad zur Eingabe, dieinputübergeben wird. Wenn mehr als eine Eingabe angegeben ist, werden alle als separate Argumente substituiert, nur wenn der Befehl'@INPUT@'als alleinstehendes Argument verwendet. Beispielsweise würde dies nicht funktionieren:command : ['cp', './@INPUT@'], aber dies würde funktionieren:command : ['cp', '@INPUT@']. -
@OUTPUT@: der vollständige Pfad zur Ausgabe, dieoutputübergeben wird. Wenn mehr als eine Ausgabe angegeben ist, ist das Verhalten dasselbe wie bei@INPUT@. -
@INPUT0@@INPUT1@...: der vollständige Pfad zur Eingabe mit dem angegebenen Array-Index ininput -
@OUTPUT0@@OUTPUT1@...: der vollständige Pfad zur Ausgabe mit dem angegebenen Array-Index inoutput -
@OUTDIR@: der vollständige Pfad zum Verzeichnis, in das die Ausgabe(n) geschrieben werden müssen -
@DEPFILE@: der vollständige Pfad zur Abhängigkeitsdatei, die andepfileübergeben wird -
@PLAINNAME@: der Eingabedateiname, ohne Pfad -
@PLAINNAME0@@PLAINNAME1@...(seit 1.5.0): der Eingabedateiname ohne Pfad, mit dem angegebenen Array-Index ininput -
@BASENAME@: der Eingabedateiname, mit entfernt erweiterung -
@BASENAME0@@BASENAME1@...(seit 1.5.0): der Eingabedateiname mit entfernter Erweiterung, mit dem angegebenen Array-Index ininput -
@PRIVATE_DIR@(seit 0.50.1): Pfad zu einem Verzeichnis, in dem das benutzerdefinierte Ziel alle seine temporären Dateien speichern muss. -
@SOURCE_ROOT@: der Pfad zum Stammverzeichnis des Quellcodes. Abhängig vom Backend kann dies ein absoluter oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein. -
@BUILD_ROOT@: der Pfad zum Stammverzeichnis des Build-Verzeichnisses. Abhängig vom Backend kann dies ein absoluter oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein. -
@CURRENT_SOURCE_DIR@: dies ist das Verzeichnis, in dem sich die aktuell verarbeitete meson.build-Datei befindet. Abhängig vom Backend kann dies ein absoluter oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein.
(seit 0.47.0) Das Schlüsselwortargument depfile akzeptiert auch die Ersetzungen @BASENAME@ und @PLAINNAME@.
Das zurückgegebene Objekt hat auch Methoden, die in custom_tgt dokumentiert sind.
Signatur
# Create a custom top level build target
custom_tgt custom_target(
str [name], # The *unique* id of the custom target
# Keyword arguments:
build_always : bool # If `true` this target is always considered out of
build_always_stale : bool # If `true` the target is always considered out of date
build_by_default : bool # Causes, when set to true, to
capture : bool # There are some compilers that can't be told to write
command : list[str | file | exe | external_program] # Command to run to create outputs from inputs
console : bool # Keyword argument conflicts with `capture`, and is meant
depend_files : list[str | file] # files (str,
depends : list[build_tgt | custom_tgt | custom_idx] # Specifies that this target depends on the specified
depfile : str # A dependency file that the command can write listing
env : env | list[str] | dict[str] # environment variables to set, such as
feed : bool # There are some compilers that can't be told to read
input : list[str | file] # List of source files
install : bool # When true, one or more files of this target are installed during the install step (see `install_dir` for details)
install_dir : str | list[str | bool] # If only one install_dir is provided, all outputs are installed there
install_mode : list[str | int] # The file mode and optionally the owner/uid and group/gid
install_tag : list[str] # A list of strings, one per output, used by the `meson install --tags` command
output : list[str] # List of output files
)
Davon auszugehen, dass command: von einer POSIX sh-Shell ausgeführt wird, ist nicht portabel, insbesondere nicht unter Windows. Verwenden Sie stattdessen eine native: true executable() oder ein Python-Skript.
Das Schlüsselwortargument install_mode ignorierte Ganzzahlwerte zwischen 0.60.0 und 1.1.0.
Argumente
Die Funktion custom_target() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
name |
str |
Die eindeutige ID des benutzerdefinierten Ziels Dieses Positionsargument ist seit 0.60.0 optional. Es wird standardmäßig auf den Basisnamen der ersten Ausgabe gesetzt. |
[optional] |
Schließlich akzeptiert custom_target() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
build_always |
bool |
Wenn |
VERALTET in 0.47.0 |
build_always_stale |
bool |
Wenn |
(seit 0.47.0)
|
build_by_default |
bool |
Bewirkt, wenn auf true gesetzt, dass dieses Ziel standardmäßig erstellt wird. Das bedeutet, dass es erstellt wird, wenn (seit 0.50.0) Wenn |
(seit 0.38.0) |
capture |
bool |
Es gibt einige Compiler, denen man nicht sagen kann, dass sie ihre Ausgabe in eine Datei schreiben, sondern stattdessen in die Standardausgabe. Wenn dieses Argument auf true gesetzt ist, erfasst Meson |
|
command |
list[str | file | exe | external_program] |
Befehl, der ausgeführt werden soll, um Ausgaben aus Eingaben zu erstellen. Der Befehl kann aus Strings oder dem Rückgabewert von Funktionen bestehen, die dateiähnliche Objekte zurückgeben, wie z. B. |
|
console |
bool |
Schlüsselwortargument, das mit |
(seit 0.48.0) |
depend_files |
list[str | file] |
Dateien ( |
|
abhängig |
list[build_tgt | custom_tgt | custom_idx] |
Gibt an, dass dieses Ziel von den angegebenen Ziel(en) abhängt, obwohl es keines davon als Befehlszeilenargument verwendet. Dies ist für Fälle gedacht, in denen Sie ein Werkzeug haben, das z. B. intern globt. Normalerweise sollten Sie die generierten Quellen als Eingaben angeben, und Meson richtet alle Abhängigkeiten automatisch ein (custom_idx war zwischen 0.60 und 1.4.0 nicht als Typ verfügbar). |
|
depfile |
str |
Eine Abhängigkeitsdatei, die der Befehl schreiben kann und die alle zusätzlichen Dateien auflistet, von denen dieses Ziel abhängt. Zum Beispiel würde ein C-Compiler alle Header-Dateien auflisten, die er inkludiert hat, und eine Änderung in einer dieser Dateien löst eine Neukompilierung aus. (seit 0.47.0) die Ersetzungen |
|
env |
env | list[str] | dict[str] |
Umgebungsvariablen, die gesetzt werden sollen, wie z. B. |
(seit 0.57.0) |
feed |
bool |
Es gibt einige Compiler, denen man nicht sagen kann, dass sie ihre Eingaben aus einer Datei lesen, sondern stattdessen aus der Standardeingabe. Wenn dieses Argument auf |
(seit 0.59.0)
|
input |
list[str | file] |
Liste der Quelldateien. (seit 0.41.0) die Liste wird abgeflacht. |
|
installieren |
bool |
Wenn true, werden ein oder mehrere Dateien dieses Ziels während des Installationsschritts installiert (siehe |
|
install_dir |
str | list[str | bool] |
Wenn nur ein
Dies würde Um nur einige Ausgaben zu installieren, übergeben Sie
Dies würde |
|
install_mode |
list[str | int] |
Der Dateimodus und optional der Besitzer/UID und die Gruppe/GID. Weitere Informationen finden Sie im Schlüsselwortargument |
(seit 0.47.0) |
install_tag |
list[str] |
Eine Liste von Strings, einer pro Ausgabe, die vom Befehl Standardmäßig haben alle Ausgaben kein Installations-Tag, was bedeutet, dass sie nicht installiert werden, wenn das Argument |
(seit 0.60.0) |
output |
list[str] |
Liste der Ausgabedateien. |
|
debug()
Schreibt den Argument-String in das Meson-Build-Log.
Signatur
(seit 0.63.0)
# Write the argument string to the meson build log
void debug(
str | int | bool | list[str | int | bool] | dict[str | int | bool] message, # The message to print
str | int | bool | list[str | int | bool] | dict[str | int | bool] msg..., # Additional parameters will be separated by spaces
)
Argumente
Die Funktion debug() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
Nachricht |
str | int | bool | list[str | int | bool] | dict[str | int | bool] |
Die auszugebende Nachricht |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und infinity variable Argumente (msg...) vom Typ .str | int | bool | list[str | int | bool] | dict[str | int | bool]
Zusätzliche Parameter werden durch Leerzeichen getrennt
declare_dependency()
Diese Funktion gibt ein dep-Objekt zurück, das sich wie der Rückgabewert von dependency() verhält, aber intern für den aktuellen Build ist. Der Hauptanwendungsfall hierfür sind Unterprojekte. Dies ermöglicht es einem Unterprojekt, einfach anzugeben, wie es verwendet werden soll. Dies macht es austauschbar mit derselben Abhängigkeit, die extern vom System bereitgestellt wird.
Signatur
# This function returns a dep object that
dep declare_dependency(
compile_args : list[str] # Compile arguments to use
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : str | int | list[str | int] # The [D version identifiers](https://dlang
dependencies : list[dep] # Other dependencies needed to use this dependency
extra_files : list[str | file] # extra files to add to targets
include_directories : list[inc | str] # the directories to add to header search path,
link_args : list[str] # Link arguments to use
link_whole : list[lib] # Libraries to link fully, same as executable().
link_with : list[lib] # Libraries to link against
objects : list[extracted_obj] # a list of object files, to be linked directly into the targets that use the
sources : list[str | file | custom_tgt | custom_idx | generated_list] # sources to add to targets
variables : dict[str] | list[str] # a dictionary of arbitrary strings,
version : str # the version of this dependency,
)
Argumente
Die Funktion declare_dependency() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
compile_args |
list[str] |
Kompilierungsargumente, die verwendet werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
str | int | list[str | int] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
(seit 0.62.0) |
dependencies |
list[dep] |
Andere Abhängigkeiten, die zur Verwendung dieser Abhängigkeit benötigt werden. |
|
extra_files |
list[str | file] |
Zusätzliche Dateien, die zu Zielen hinzugefügt werden sollen, hauptsächlich für die IDE-Integration. |
(seit 1.2.0) |
include_directories |
list[inc | str] |
die Verzeichnisse, die zum Header-Suchpfad hinzugefügt werden sollen, müssen |
|
link_args |
list[str] |
Link-Argumente, die verwendet werden sollen. |
|
link_whole |
list[lib] |
Bibliotheken, die vollständig verknüpft werden sollen, wie bei |
(seit 0.46.0) |
link_with |
list[lib] |
Bibliotheken, gegen die verknüpft werden soll. |
|
objekte |
list[extracted_obj] |
eine Liste von Objektdateien, die direkt in die Ziele verknüpft werden sollen, die die Abhängigkeit verwenden. |
(seit 1.1.0) |
sources |
list[str | file | custom_tgt | custom_idx | generated_list] |
Quellen, die zu Zielen hinzugefügt werden sollen (oder generierte Header-Dateien, die erstellt werden sollen, bevor Quellen, die sie einschließen, erstellt werden) |
|
variables |
dict[str] | list[str] |
ein Wörterbuch mit beliebigen Strings, das für die Verwendung in Unterprojekten gedacht ist, in denen spezielle Variablen über cmake oder pkg-config bereitgestellt würden. seit 0.56.0 kann es auch eine Liste von |
(seit 0.54.0) |
Version |
str |
die Version dieser Abhängigkeit, z. B. |
|
dependency()
Findet eine externe Abhängigkeit (normalerweise eine auf Ihrem System installierte Bibliothek) mit dem angegebenen Namen mit pkg-config und mit CMake, wenn pkg-config fehlschlägt. Zusätzlich werden Frameworks (nur OSX) und bibliothekspezifische Fallback-Erkennungslogik unterstützt.
Seit 0.60.0 können mehr als ein Name angegeben werden, sie werden der Reihe nach versucht und der erste gefundene Name wird verwendet. Das Fallback-Unterprojekt wird nur verwendet, wenn keiner der Namen gefunden wird. Sobald einer der Namen gefunden wurde, werden alle anderen Namen in den Cache aufgenommen, sodass nachfolgende Aufrufe für einen dieser Namen denselben Wert zurückgeben. Dies ist nützlich, wenn eine Abhängigkeit unterschiedliche Namen haben könnte, z. B. png und libpng.
- Seit 0.64.0 kann ein Abhängigkeits-Fallback über WrapDB bereitgestellt werden. Laden Sie einfach die Datenbank lokal mit dem Befehl
meson wrap update-dbherunter, und Meson greift automatisch auf von WrapDB bereitgestellte Unterprojekte zurück, wenn die Abhängigkeit nicht im System gefunden wird und das Projekt keine eigene.wrap-Datei mitliefert.
Abhängigkeiten können auch auf zwei andere Arten aufgelöst werden
-
wenn derselbe Name vor dem Aufruf von
dependencyin einemmeson.override_dependencyverwendet wurde, wird die überschreibende Abhängigkeit bedingungslos zurückgegeben; d.h., die überschreibende Abhängigkeit wird unabhängig davon verwendet, ob eine externe Abhängigkeit im System installiert ist. Typischerweise wirdmeson.override_dependencyvon einem Unterprojekt verwendet worden sein. -
durch ein Fallback-Unterprojekt, das bei Bedarf in die aktuelle Build-Spezifikation einbezogen wird, als ob
subproject()aufgerufen worden wäre. Das Unterprojekt kann mit dem Argumentfallbackangegeben werden. Alternativ, wenn das Argumentfallbackfehlt, kann Meson seit 0.55.0 ein Unterprojekt automatisch als Fallback identifizieren, wenn eine Wrap-Datei die Abhängigkeit bereitstellt, oder wenn ein Unterprojekt denselben Namen wie die Abhängigkeit hat. In letzterem Fall muss das Unterprojektmeson.override_dependencyverwenden, um die Ersetzung anzugeben, sonst meldet Meson einen schwerwiegenden Fehler. Siehe die Wrap-Dokumentation für weitere Details. Diese automatische Suche kann über das Schlüsselwortargumentallow_fallbackgesteuert werden.
Wenn dependency_name '' ist, wird die Abhängigkeit immer nicht gefunden. Mit required: false gibt dies immer ein Abhängigkeitsobjekt zurück, für das die Methode found() false zurückgibt und das wie jede andere Abhängigkeit an das Schlüsselwortargument dependencies: eines build_target übergeben werden kann. Dies kann verwendet werden, um eine Abhängigkeit zu implementieren, die manchmal nicht erforderlich ist, z. B. in einigen Zweigen einer Bedingung, oder mit einem fallback:-Schlüsselwort kann es verwendet werden, um eine optionale Abhängigkeit zu deklarieren, die nur im angegebenen Unterprojekt sucht und nur, wenn dies durch --wrap-mode erlaubt ist.
Das zurückgegebene Objekt dep hat auch zusätzliche Methoden.
Signatur
# Finds an external dependency (usually a library installed on your
dep dependency(
str names..., # The names of the dependency to look up
# Keyword arguments:
allow_fallback : bool # Specifies whether Meson should automatically pick a fallback subproject
default_options : list[str] | dict[str | bool | int | list[str]] # An array of default option values
disabler : bool # Returns a disabler() object instead of a not-found dependency
fallback : list[str] | str # Manually specifies a subproject fallback
include_type : str # An enum flag, marking how the dependency
language : str # Defines what language-specific dependency to find
method : str # Defines the way the dependency is detected, the default is
native : bool # If set to `true`, causes Meson to find the dependency on
not_found_message : str # An optional string that will be printed as a message() if the dependency was not found.
required : bool | feature # When set to `false`, Meson will proceed with the build
static : bool # Tells the dependency provider to try to get static
version : list[str] | str # Specifies the required version,
)
Diese Funktion unterstützt zusätzliche bibliothekspezifische Schlüsselwortargumente, die ebenfalls akzeptiert werden können (z. B. modules gibt Untermodule an, die für Abhängigkeiten wie Qt5 oder Boost verwendet werden sollen. components ermöglicht dem Benutzer, manuell CMake COMPONENTS für die find_package-Suche hinzuzufügen).
Argumente
Die Funktion akzeptiert zwischen 1 und infinity variable Argumente (names...) vom Typ .str
Die Namen der zu suchenden Abhängigkeit. Die Abhängigkeiten werden in der Reihenfolge gesucht, in der sie hier angegeben sind. Die erste gefundene Abhängigkeit wird dann verwendet. Das Fallback-Unterprojekt wird nur verwendet, wenn keiner der Namen im System gefunden wird. Sobald einer der Namen gefunden wurde, werden alle anderen Namen in den Cache aufgenommen, sodass nachfolgende Aufrufe für einen dieser Namen denselben Wert zurückgeben. Dies ist nützlich, wenn eine Abhängigkeit unterschiedliche Namen haben könnte, z. B. png und libpng.
HINWEIS: Vor 0.60.0 war nur ein einzelner Abhängigkeitsname erlaubt.
(seit 0.60.0)
Die Funktion dependency() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
allow_fallback |
bool |
Gibt an, ob Meson automatisch ein Fallback-Unterprojekt auswählen soll, falls die Abhängigkeit nicht im System gefunden wird. Wenn |
(seit 0.56.0) |
default_options |
list[str] | dict[str | bool | int | list[str]] |
Eine Liste von Standardoptionswerten, die diejenigen überschreiben, die in der |
(seit 0.38.0) |
disabler |
bool |
Gibt ein |
(seit 0.49.0)
|
fallback |
list[str] | str |
Gibt manuell ein Unterprojekt-Fallback an, das verwendet werden soll, falls die Abhängigkeit nicht im System gefunden wird. Dies ist nützlich, wenn die automatische Suche nicht zutreffend ist oder wenn Sie ältere Meson-Versionen als 0.55.0 unterstützen möchten. Wenn der Wert ein Array |
|
include_type |
str |
Ein Enum-Flag, das markiert, wie die Abhängigkeitsflags konvertiert werden sollen. Unterstützte Werte sind |
(seit 0.52.0)
|
language |
str |
Gibt an, welche sprachspezifische Abhängigkeit gefunden werden soll, wenn sie für mehrere Sprachen verfügbar ist. |
(seit 0.42.0) |
method |
str |
Definiert die Methode zur Erkennung der Abhängigkeit, der Standard ist |
(seit 0.40.0)
|
native |
bool |
Wenn auf |
|
not_found_message |
str |
Ein optionaler String, der als |
(seit 0.50.0) |
erforderlich |
bool | feature |
Wenn auf Wenn auf ein (seit 0.47.0) Der Wert einer |
|
static |
bool |
Weist den Anbieter der Abhängigkeit an, zu versuchen, statische Bibliotheken anstelle von dynamischen zu erhalten (beachten Sie, dass dies nicht von allen Abhängigkeits-Backends unterstützt wird). Seit 0.60.0 setzt es auch die Option Seit 0.63.0 wenn die Option |
|
Version |
list[str] | str |
Gibt die erforderliche Version an, ein String, der einen Vergleichsoperator gefolgt von der Versionszeichenfolge enthält, Beispiele sind |
(seit 0.37.0) |
disabler()
Gibt ein disabler-Objekt zurück.
Signatur
(seit 0.44.0)
disabler disabler()
environment()
Gibt ein leeres env-Objekt zurück.
Signatur
(seit 0.35.0)
# Returns an empty env object.
env environment(
str | list[str] | dict[str] | dict[list[str]] [env], # If provided, each key/value pair is added into the env object
# Keyword arguments:
method : str # Must be one of 'set', 'prepend', or 'append'
separator : str # The separator to use for the initial values defined in
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion environment() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
env |
str | list[str] | dict[str] | dict[list[str]] |
Falls bereit, werden die Schlüssel/Wert-Paare dem |
(seit 0.52.0) [optional] |
Schließlich akzeptiert environment() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
method |
str |
Muss entweder 'set', 'prepend' oder 'append' sein (Standard ist 'set'). Steuert, ob die im ersten Positionsargument definierten Anfangswerte dem Umgebungsvariablenwert vorangestellt, angehängt oder diesen ersetzen. |
(seit 0.62.0) |
separator |
str |
Das Trennzeichen, das für die im ersten Positionsargument definierten Anfangswerte verwendet werden soll. Wenn es nicht explizit angegeben wird, wird das Standard-Pfadtrennzeichen des Host-Betriebssystems verwendet, d. h. ';' für Windows und ':' für UNIX/POSIX-Systeme. |
(seit 0.62.0) |
error()
Gibt den Argument-String aus und stoppt den Build-Prozess.
Signatur
# Print the argument string and halts the build process
void error(
str message, # The message to print
str msg..., # Additional parameters will be separated by spaces
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion error() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
Nachricht |
str |
Die auszugebende Nachricht |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (msg...) vom Typ .str
Zusätzliche Parameter werden durch Leerzeichen getrennt
(seit 0.58.0)
executable()
Erstellt eine neue ausführbare Datei. Das erste Argument gibt ihren Namen an und die restlichen Positionsargumente definieren die zu verwendenden Eingabedateien.
Die Listen für die Schlüsselwortargumente (wie sources, objects und dependencies) werden immer abgeflacht, was bedeutet, dass Sie beim Erstellen der endgültigen Liste Listen beliebig verschachteln und hinzufügen können.
Das zurückgegebene Objekt hat auch Methoden, die in exe dokumentiert sind.
Seit 1.3.0 können ausführbare Dateinamen für mehrere Ziele gleich sein, solange jedes eine andere name_suffix hat.
Signatur
# Creates a new executable
exe executable(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
dependencies : list[dep] # one or more dependency objects
export_dynamic : bool # when set to true causes the target's symbols to be
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implib : bool | str # When set to true, an import library is generated for the
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
pie : bool # Build a position-independent executable
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
vala_args : list[str | file] # Compiler flags for Vala
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
Der Parameter link_language war bis 0.55.0 fehlerhaft
Argumente
Die Funktion executable() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert executable() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
export_dynamic |
bool |
Wenn auf true gesetzt, werden die Symbole des Ziels dynamisch exportiert, sodass Module, die mit der Funktion |
(seit 0.45.0) |
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implib |
bool | str |
Wenn auf true gesetzt, wird eine Importbibliothek für die ausführbare Datei generiert (der Name der Importbibliothek basiert auf exe_name). Alternativ, wenn auf einen String gesetzt, gibt dies den Basisnamen für die Importbibliothek an. Die Importbibliothek wird verwendet, wenn das zurückgegebene Build-Ziel-Objekt an anderer Stelle in |
(seit 0.42.0) |
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
pie |
bool |
Erstellt eine positionunabhängige ausführbare Datei. |
(seit 0.49.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). Dies kann verwendet werden, um offenzulegen, welche Funktionen ein von einer ausführbaren Datei geladenes |
(seit 1.3.0) |
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
files()
Dieser Befehl nimmt die ihm übergebenen Strings und gibt entsprechende Dateiobjekte zurück, die als Quellen für Build-Ziele verwendet werden können. Der Unterschied besteht darin, dass sich Dateiobjekte das Unterverzeichnis merken, in dem sie definiert wurden, und überall im Quellbaum verwendet werden können.
Signatur
# This command takes the strings given to it in arguments and returns
list[file] files(
str file..., # Path to the file
)
Beispiel
Angenommen, Sie haben die Quelldatei foo.cpp im Unterverzeichnis bar1 und möchten sie in einem Build-Ziel verwenden, das in bar2 definiert ist. Um dies zu erreichen, erstellen Sie zuerst das Objekt in bar1 wie folgt:
foofile = files('foo.cpp')
Dann können Sie es in bar2 wie folgt verwenden:
executable('myprog', 'myprog.cpp', foofile, ...)
Meson wird dann das Richtige tun.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (file...) vom Typ .str
Pfad zur Datei.
find_program()
program_name ist hier ein String, der eine ausführbare Datei oder ein Skript sein kann, das in PATH oder an anderen Stellen innerhalb des Projekts gesucht wird. Die Suchreihenfolge ist:
- Programme, die über
meson.override_find_program()überschrieben wurden -
[provide]Abschnitte in Subprojekt-Wrap-Dateien, wennwrap_modeaufforcefallbackgesetzt ist -
[binaries]Abschnitt in Ihren Maschinendateien - Verzeichnisse, die über das Schlüsselwort
dirs:bereitgestellt werden (siehe unten) - Projektquellbaum relativ zum aktuellen Unterverzeichnis
- Wenn der Rückgabewert von
configure_file()verwendet wird, wird stattdessen das aktuelle Unterverzeichnis im Build-Verzeichnis verwendet.
- Wenn der Rückgabewert von
-
PATHUmgebungsvariable -
[provide]Abschnitte in Subprojekt-Wrap-Dateien, wennwrap_modeauf etwas anderes alsnofallbackgesetzt ist
Meson erkennt auch automatisch Skripte mit einer Shebang-Zeile und führt sie mit der darin angegebenen ausführbaren Datei/Interpreter aus, sowohl unter Windows (da der Befehlsaufrufer den Befehl sonst ablehnt) als auch unter Unixen (wenn die Skriptdatei nicht die ausführbare Berechtigung hat). Daher dürfen Sie den Interpreter *nicht* manuell hinzufügen, wenn Sie dieses Skript als Teil einer Befehlsliste verwenden. Seit Version 0.50.0 gibt Meson seinen aktuellen Interpreter zurück, wenn das Programm "python3" angefordert und nicht im System gefunden wird.
Wenn Sie ein Programm an einem nicht-standardmäßigen Ort suchen müssen, können Sie einfach einen absoluten Pfad an find_program übergeben, z. B.:
setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
Es ist auch möglich, ein Array an find_program zu übergeben, falls Sie die zu durchsuchenden Pfade dynamisch erstellen müssen:
setcap = find_program(['setcap', '/usr/sbin/setcap', '/sbin/setcap'], required : false)
Seit 1.2.0 wird find_program('meson') automatisch auf den Meson-Befehl überschrieben, der zum Ausführen des Build-Skripts verwendet wird.
Das zurückgegebene external_program-Objekt hat ebenfalls dokumentierte Methoden.
Signatur
# `program_name` here is a string that can be an executable or script
external_program find_program(
str | file program_name, # The name of the program to search, or a file object to be used
str | file fallback..., # These parameters are used as fallback names to search for
# Keyword arguments:
default_options : list[str] | dict[str | bool | int | list[str]] # An array of default option values
dirs : list[str] # extra list of absolute paths where to look for program names
disabler : bool # If `true` and the program couldn't be found, return a disabler object
native : bool # Defines how this executable should be searched
required : bool | feature # When `true`, Meson will abort if no program can be found
version : str | list[str] # Specifies the required version, see
version_argument : str # Specifies the argument to pass when trying to find the version of the program
)
Argumente
Die Funktion find_program() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
program_name |
str | file |
Der Name des zu suchenden Programms oder ein |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (fallback...) vom Typ .str | file
Diese Parameter werden als Fallback-Namen für die Suche verwendet. Dies ist für Fälle gedacht, in denen das Programm viele alternative Namen haben kann, wie z. B. foo und foo.py. Die Funktion prüft die Argumente nacheinander und das erste gefundene wird zurückgegeben.
(seit 0.37.0)
Schließlich akzeptiert find_program() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
default_options |
list[str] | dict[str | bool | int | list[str]] |
Ein Array von Standard-Optionswerten, die die in |
(seit 1.3.0) |
dirs |
list[str] |
zusätzliche Liste von absoluten Pfaden, in denen nach Programmnamen gesucht werden soll. |
(seit 0.53.0) |
disabler |
bool |
Wenn |
(seit 0.49.0)
|
native |
bool |
Definiert, wie diese ausführbare Datei gesucht werden soll. Standardmäßig ist sie auf |
(seit 0.43.0)
|
erforderlich |
bool | feature |
Wenn |
|
Version |
str | list[str] |
Gibt die erforderliche Version an, siehe |
(seit 0.52.0) |
version_argument |
str |
Gibt das Argument an, das beim Versuch, die Version des Programms zu ermitteln, übergeben werden soll. Wenn dies nicht angegeben ist, wird |
(seit 1.5.0) |
generator()
Siehe auch: custom_target()
Diese Funktion erstellt ein generator-Objekt, das zum Ausführen benutzerdefinierter Kompilierungsbefehle verwendet werden kann. Das einzige Positionsargument ist die auszuführende ausführbare Datei. Es kann entweder eine selbst erstellte ausführbare Datei oder eine von find_program zurückgegebene sein.
Die Vorlagen-Strings, die an alle Schlüsselwortargumente übergeben werden, akzeptieren die folgenden speziellen Ersetzungen:
-
@PLAINNAME@: der vollständige Name der Eingabedatei, z. B.:foo.cwird zufoo.c(unverändert) -
@BASENAME@: die Basis des Eingabedateinamen, z. B.:foo.c.ywird zufoo.c(die Erweiterung wird entfernt)
Jeder String, der dem Schlüsselwortargument output übergeben wird, *muss* mit einer oder beiden dieser beiden Ersetzungen konstruiert werden.
Zusätzlich zu den oben genannten Ersetzungen akzeptiert das Schlüsselwortargument arguments auch Folgendes:
-
@OUTPUT@: der vollständige Pfad zur Ausgabedatei -
@INPUT@: der vollständige Pfad zur Eingabedatei -
@DEPFILE@: der vollständige Pfad zur Abhängigkeitsdatei -
@SOURCE_DIR@: der vollständige Pfad zum Stammverzeichnis des Quellbaums -
@CURRENT_SOURCE_DIR@: dies ist das Verzeichnis, in dem sich die aktuell verarbeitete meson.build-Datei befindet -
@BUILD_DIR@: der vollständige Pfad zum Stammverzeichnis des Build-Baums, in dem die Ausgabe platziert wird
HINWEIS: Generatoren sollten nur für Ausgaben verwendet werden, die *nur* als Eingaben für ein build_target() oder ein custom_target() verwendet werden. Wenn Sie die verarbeitete Ausgabe eines Generators in mehreren Zielen verwenden, wird der Generator mehrmals ausgeführt, um Ausgaben für jedes Ziel zu erstellen. Jede Ausgabe wird in einem Ziel-privaten Verzeichnis @BUILD_DIR@ erstellt.
Wenn Sie Dateien für allgemeine Zwecke generieren möchten, z. B. zum Generieren von Header-Dateien, die von mehreren Quellen verwendet werden, oder von Daten, die installiert werden sollen, usw., verwenden Sie stattdessen ein custom_target().
Signatur
# See also: custom_target()
generator generator(
exe | external_program exe, # Executable for the command to run
# Keyword arguments:
arguments : list[str] # A list of template strings that will be the command line arguments passed to the executable
capture : bool # When this argument is set to true, Meson captures `stdout`
depends : list[build_tgt | custom_tgt | custom_idx] # An array of build targets that must be built before
depfile : str # A template string pointing to a dependency file that a
output : list[str] # Template string (or list of template strings) defining
)
Argumente
Die Funktion generator() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
exe |
exe | external_program |
Ausführbare Datei für den auszuführenden Befehl |
|
Schließlich akzeptiert generator() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
arguments |
list[str] |
Eine Liste von Vorlagen-Strings, die die Befehlszeilenargumente sind, die an die ausführbare Datei übergeben werden. |
|
capture |
bool |
Wenn dieses Argument auf true gesetzt ist, erfasst Meson |
(seit 0.43.0)
|
abhängig |
list[build_tgt | custom_tgt | custom_idx] |
Ein Array von Build-Zielen, die erstellt werden müssen, bevor dieser Generator ausgeführt werden kann. Dies wird verwendet, wenn Sie einen Generator haben, der eine zweite ausführbare Datei aufruft, die in diesem Projekt erstellt wird (custom_idx war zwischen 0.60 und 1.4.0 nicht verfügbar). |
(seit 0.51.0) |
depfile |
str |
Ein Vorlagen-String, der auf eine Abhängigkeitsdatei verweist, in der ein Generator alle zusätzlichen Dateien auflisten kann, von denen dieses Ziel abhängt. Zum Beispiel würde ein C-Compiler alle inkludierten Header-Dateien auflisten, und eine Änderung in einer dieser Dateien würde eine Neuberechnung auslösen. |
|
output |
list[str] |
Ein Vorlagen-String (oder eine Liste von Vorlagen-Strings), der definiert, wie ein Ausgabedateiname aus einem einzelnen Quellcodedateinamen generiert wird (oder mehrere Ausgabedateinamen werden generiert). |
|
get_option()
Ruft den Wert der im Positionsargument angegebenen Projekt-Build-Option ab.
Beachten Sie, dass der für integrierte Optionen zurückgegebene Wert, die auf dir enden (wie bindir und libdir), normalerweise ein Pfad relativ zu (und innerhalb von) prefix ist, aber Sie sollten sich nicht darauf verlassen, da er in einigen Fällen auch ein absoluter Pfad sein kann . install_dir Argumente behandeln dies wie erwartet, aber wenn Sie einen absoluten Pfad benötigen, z. B. für eine Definition oder dergleichen, sollten Sie den Pfadverkettungsoperator wie folgt verwenden: get_option('prefix') / get_option('localstatedir'). Verketten Sie niemals Pfade manuell, als wären sie Strings.
Für Optionen vom Typ feature wird anstelle eines Strings ein feature-Options-Objekt zurückgegeben. Weitere Informationen finden Sie in der Dokumentation zu feature-Optionen.
Signatur
# Obtains the value of the [project build option](Build-options
str | int | bool | feature | list[str | int | bool] get_option(
str option_name, # Name of the option to query
)
Argumente
Die Funktion get_option() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
option_name |
str |
Name der abzufragenden Option |
|
get_variable()
Diese Funktion kann verwendet werden, um eine Variable dynamisch zu erhalten. res = get_variable(varname, fallback) nimmt den Wert von varname (der ein String sein muss) und speichert die Variable dieses Namens in res. Wenn die Variable nicht existiert, wird stattdessen die Variable fallback in res gespeichert. Wenn kein Fallback angegeben ist, führt der Versuch, eine nicht vorhandene Variable zu lesen, zu einem schwerwiegenden Fehler.
Signatur
# This function can be used to dynamically obtain a variable
any get_variable(
str variable_name, # Name of the variable to get
any [default], # Fallback value to return when the variable does not exist
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion get_variable() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
variable_name |
str |
Name der abzurufenden Variable |
|
default |
any |
Fallback-Wert, der zurückgegeben wird, wenn die Variable nicht existiert |
[optional] |
import()
Importiert das gegebene Erweiterungsmodul. Gibt ein Objekt zurück, das verwendet werden kann, um die Methoden des Moduls aufzurufen. Hier ist ein Beispiel für ein hypothetisches testmod-Modul.
Signatur
# Imports the given extension module
module import(
str module_name, # Name of the module to import
# Keyword arguments:
disabler : bool # Returns a disabler object when not found.
required : bool | feature # When set to `false`, Meson will proceed with the build even if the module is not found
)
Beispiel
tmod = import('testmod')
tmod.do_something()
Argumente
Die Funktion import() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
module_name |
str |
Name des zu importierenden Moduls. |
|
Schließlich akzeptiert import() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
disabler |
bool |
Gibt ein |
(seit 0.59.0) |
erforderlich |
bool | feature |
Wenn auf |
(seit 0.59.0)
|
include_directories()
Gibt ein undurchsichtiges Objekt zurück, das die Verzeichnisse (relativ zum aktuellen Verzeichnis) enthält, die in den Positionsargumenten angegeben wurden. Das Ergebnis kann dann dem Schlüsselwortargument include_directories: beim Erstellen von ausführbaren Dateien oder Bibliotheken übergeben werden. Sie können das zurückgegebene Objekt in jedem Unterverzeichnis verwenden, Meson wird die Pfade automatisch korrekt handhaben.
Beachten Sie, dass dieser Funktionsaufruf die Verzeichnisse nicht selbst zum Suchpfad hinzufügt, da es keinen globalen Suchpfad gibt. Für so etwas siehe add_project_arguments().
Siehe auch den Parameter implicit_include_directories von executable(), der die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt.
Jedes angegebene Verzeichnis wird in zwei Include-Pfade konvertiert: einen relativ zum Quellverzeichnis und einen relativ zum Build-Verzeichnis.
Signatur
# Returns an opaque object which contains the directories (relative to
inc include_directories(
str includes..., # Include paths to add
# Keyword arguments:
is_system : bool # If set to `true`, flags the specified directories as system directories
)
Beispiel
Zum Beispiel mit der folgenden Quellbaumstruktur in /home/user/project.git:
meson.build:
project(...)
subdir('include')
subdir('src')
...
include/meson.build:
inc = include_directories('.')
...
src/meson.build:
sources = [...]
executable('some-tool', sources,
include_directories : inc,
...)
...
Wenn der Build-Baum /tmp/build-tree ist, werden die folgenden Include-Pfade zum Aufruf von executable() hinzugefügt: -I/tmp/build-tree/include -I/home/user/project.git/include.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (includes...) vom Typ .str
Include-Pfade zum Hinzufügen.
Die Funktion include_directories() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
is_system |
bool |
Wenn auf |
|
install_data()
Installiert Dateien aus dem Quellbaum, die als Positionsargumente aufgeführt sind.
Siehe Installation für weitere Beispiele.
Signatur
# Installs files from the source tree that are listed as positional arguments
void install_data(
file | str file..., # Files to install
# Keyword arguments:
follow_symlinks : bool # If true, dereferences links and copies their target instead
install_dir : str # The absolute or relative path to the installation directory
install_mode : list[str | int] # specify the file mode in symbolic format and
install_tag : str # A string used by the `meson install --tags` command
preserve_path : bool # Disable stripping child-directories from data files when installing
rename : list[str] # If specified renames each source file into corresponding file from `rename` list
sources : list[file | str] # Additional files to install
)
Der Parameter install_mode ignorierte Ganzzahlwerte zwischen 0.59.0 und 1.1.0.
Ein ausgelassener Parameter install_dir funktionierte in einem Subprojekt bis 1.3.0 nicht korrekt.
Ein ausgelassener Parameter install_dir funktionierte in Kombination mit dem Parameter preserve_path bis 1.3.0 nicht korrekt.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (file...) vom Typ .file | str
Zu installierende Dateien.
Die Funktion install_data() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
follow_symlinks |
bool |
Wenn true, werden Links aufgelöst und stattdessen ihre Ziele kopiert. Der Standardwert wird in Zukunft false sein. |
(seit 1.3.0)
|
install_dir |
str |
Der absolute oder relative Pfad zum Installationsverzeichnis. Wenn dies ein relativer Pfad ist, wird angenommen, dass er relativ zum Präfix ist. Wenn ausgelassen, wird das Verzeichnis standardmäßig auf |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und die Gruppe/GID für die installierten Dateien an. Zum Beispiel:
Um eine dieser drei Optionen auf dem Standardwert zu belassen, geben Sie |
(seit 0.38.0) |
install_tag |
str |
Ein String, der vom Befehl |
(seit 0.60.0) |
preserve_path |
bool |
Deaktiviert das Entfernen von Unterverzeichnissen aus Datendateien während der Installation. Dies ist äquivalent zur |
(seit 0.64.0)
|
rename |
list[str] |
Wenn angegeben, benennt jede Quelldatei in die entsprechende Datei aus der Liste |
(seit 0.46.0) |
sources |
list[file | str] |
Zusätzliche zu installierende Dateien. |
|
install_emptydir()
Installiert einen neuen Verzeichniseintrag an dem durch das Positionsargument angegebenen Ort. Wenn das Verzeichnis existiert und nicht leer ist, bleiben die Inhalte erhalten.
Signatur
(seit 0.60.0)
# Installs a new directory entry to the location specified by the positional
void install_emptydir(
str dirpath..., # Directory to create during installation
# Keyword arguments:
install_mode : list[str | int] # Specify the file mode in symbolic format and optionally the owner/uid and
install_tag : str # A string used by the `meson install --tags` command to install only a
)
Der Parameter install_mode ignorierte Ganzzahlwerte vor 1.1.0.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (dirpath...) vom Typ .str
Während der Installation zu erstellendes Verzeichnis.
Die Funktion install_emptydir() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und die Gruppe/GID für das erstellte Verzeichnis an. Siehe das Schlüsselwortargument |
|
install_tag |
str |
Ein String, der vom Befehl |
|
install_headers()
Installiert die angegebenen Header-Dateien aus dem Quellbaum in das System-Header-Verzeichnis (normalerweise /{prefix}/include) während des Installationsschritts. Dieses Verzeichnis kann durch Angabe mit dem Schlüsselwortargument install_dir überschrieben werden. Wenn Sie nur in ein Unterverzeichnis des System-Header-Verzeichnisses installieren möchten, verwenden Sie das Argument subdir. Als Beispiel, wenn dies den Wert myproj hat, werden die Header nach /{prefix}/include/myproj installiert.
Signatur
# Installs the specified header files from the source tree into the
void install_headers(
file | str file..., # Header files to install
# Keyword arguments:
follow_symlinks : bool # If true, dereferences links and copies their target instead
install_dir : str # Where to install to
install_mode : list[str | int] # Specify the file mode in symbolic format
preserve_path : bool # Disable stripping child-directories from header files when installing
subdir : str # Install to the `subdir` subdirectory of the default includedir
)
Beispiel
Zum Beispiel installiert dies common.h und kola.h in /{prefix}/include
install_headers('common.h', 'proj/kola.h')
Dies installiert common.h und kola.h in /{prefix}/include/myproj
install_headers('common.h', 'proj/kola.h', subdir : 'myproj')
Dies installiert common.h und kola.h in /{prefix}/cust/myproj
install_headers('common.h', 'proj/kola.h', install_dir : 'cust', subdir : 'myproj')
Dies installiert common.h in /{prefix}/include und kola.h in /{prefix}/include/proj/
install_headers('common.h, 'proj/kola.h', preserve_path : true)
Der Parameter install_mode ignorierte Ganzzahlwerte zwischen 0.59.0 und 1.1.0.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (file...) vom Typ .file | str
Zu installierende Header-Dateien.
Die Funktion install_headers() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
follow_symlinks |
bool |
Wenn true, werden Links aufgelöst und stattdessen ihre Ziele kopiert. Der Standardwert wird in Zukunft false sein. |
(seit 1.3.0)
|
install_dir |
str |
Wohin installiert werden soll. |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
preserve_path |
bool |
Deaktiviert das Entfernen von Unterverzeichnissen aus Header-Dateien während der Installation. Dies ist äquivalent zur |
(seit 0.63.0)
|
subdir |
str |
Installation im Unterverzeichnis Inkompatibel mit dem Schlüsselwortargument |
|
install_man()
Installiert die angegebenen Man-Dateien aus dem Quellbaum in das Man-Verzeichnis des Systems während des Installationsschritts. Dieses Verzeichnis kann durch Angabe mit dem Schlüsselwortargument install_dir überschrieben werden.
(seit 0.49.0) Manpages werden nicht mehr implizit komprimiert.
Signatur
# Installs the specified man files from the source tree into system's man directory
void install_man(
file | str file..., # Man pages to install
# Keyword arguments:
install_dir : str # Where to install to
install_mode : list[str | int] # Specify the file mode in symbolic format
locale : str # Can be used to specify the locale
)
Der Parameter install_mode ignorierte Ganzzahlwerte zwischen 0.59.0 und 1.1.0.
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (file...) vom Typ .file | str
Zu installierende Manpages.
Die Funktion install_man() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
install_dir |
str |
Wohin installiert werden soll. |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
locale |
str |
Kann verwendet werden, um die Locale anzugeben, in die die Manpage innerhalb des Verzeichnisbaums für Handbuchseiten installiert wird. Ein Beispiel für ein Handbuch könnte |
(seit 0.58.0) |
install_subdir()
Installiert das gesamte angegebene Unterverzeichnis und dessen Inhalt aus dem Quellbaum an den durch das Schlüsselwortargument install_dir angegebenen Ort.
(seit 0.45.0, seit 0.60.0 veraltet) Wenn das Unterverzeichnis im Quellbaum nicht existiert, wird ein leeres Verzeichnis an dem angegebenen Ort erstellt. Ein neu erstelltes Unterverzeichnis kann nur im Schlüsselwortargument install_dir erstellt werden. Diese Methode hat eine Reihe von Fehlern und war nie dazu bestimmt, so zu funktionieren. Bitte verwenden Sie stattdessen install_emptydir().
Signatur
# Installs the entire given subdirectory and its contents from the
void install_subdir(
str subdir_name, # The sub-directory to install
# Keyword arguments:
exclude_directories : list[str] # A list of directory names that should not be installed
exclude_files : list[str] # A list of file names that should not be installed
follow_symlinks : bool # If true, dereferences links and copies their target instead
install_dir : str # Where to install to
install_mode : list[str | int] # Specify the file mode in symbolic format
install_tag : str # A string used by the `meson install --tags` command
strip_directory : bool # Install directory contents
)
Beispiel
Für ein gegebenes Verzeichnis foo
foo/
bar/
file1
file2
install_subdir('foo', install_dir : 'share', strip_directory : false) erstellt
share/
foo/
bar/
file1
file2
install_subdir('foo', install_dir : 'share', strip_directory : true) erstellt
share/
bar/
file1
file2
install_subdir('foo/bar', install_dir : 'share', strip_directory : false) erstellt
share/
bar/
file1
install_subdir('foo/bar', install_dir : 'share', strip_directory : true) erstellt
share/
file1
install_subdir('new_directory', install_dir : 'share') erstellt
share/
new_directory/
Der Parameter install_mode ignorierte Ganzzahlwerte zwischen 0.59.0 und 1.1.0.
Argumente
Die Funktion install_subdir() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
subdir_name |
str |
Das zu installierende Unterverzeichnis |
|
Schließlich akzeptiert install_subdir() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
exclude_directories |
list[str] |
Eine Liste von Verzeichnisnamen, die nicht installiert werden sollen. Namen werden als Pfade relativ zum Speicherort von |
(seit 0.47.0) |
exclude_files |
list[str] |
Eine Liste von Dateinamen, die nicht installiert werden sollen. Namen werden als Pfade relativ zum Speicherort von |
|
follow_symlinks |
bool |
Wenn true, werden Links aufgelöst und stattdessen ihre Ziele kopiert. Der Standardwert wird in Zukunft false sein. |
(seit 1.3.0)
|
install_dir |
str |
Wohin installiert werden soll. |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_tag |
str |
Ein String, der vom Befehl |
(seit 0.60.0) |
strip_directory |
bool |
Installiert den Verzeichnisinhalt. Wenn |
(seit 0.45.0)
|
install_symlink()
Installiert einen symbolischen Link zu pointing_to Ziel unter install_dir.
Signatur
(seit 0.61.0)
# Installs a symbolic link to `pointing_to` target under install_dir
void install_symlink(
str link_name, # Name of the created link under `install_dir`
# Keyword arguments:
install_dir : str [required] # The absolute or relative path to the installation directory for the links
install_tag : str # A string used by the `meson install --tags` command
pointing_to : str [required] # Target to point the link to
)
Argumente
Die Funktion install_symlink() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
link_name |
str |
Name des unter |
|
Schließlich akzeptiert install_symlink() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
install_dir |
str |
Der absolute oder relative Pfad zum Installationsverzeichnis für die Links. Wenn dies ein relativer Pfad ist, wird angenommen, dass er relativ zum Präfix ist. |
|
install_tag |
str |
Ein String, der vom Befehl |
|
pointing_to |
str |
Ziel, auf das der Link zeigen soll. Kann absolut oder relativ sein, was bei der Erstellung des Links berücksichtigt wird. |
|
is_disabler()
Gibt true zurück, wenn eine Variable ein Disabler ist, und false andernfalls.
Signatur
(seit 0.52.0)
# Returns true if a variable is a disabler and false otherwise
bool is_disabler(
any var, # The variable to test
)
Argumente
Die Funktion is_disabler() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
var |
any |
Die zu testende Variable |
|
is_variable()
Gibt true zurück, wenn eine Variable des angegebenen Namens existiert, und false andernfalls.
Signatur
(seit 0.52.0)
# Returns true if a variable of the given name exists and false otherwise
bool is_variable(
str var, # The variable to test
)
Argumente
Die Funktion is_variable() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
var |
str |
Die zu testende Variable |
|
jar()
Baut ein Jar aus den angegebenen Java-Quelldateien. Schlüsselwortargumente sind die gleichen wie bei executable(), mit der zusätzlichen Option main_class, die die Hauptklasse angibt, die beim Ausführen des Jars mit java -jar file.jar ausgeführt werden soll.
Signatur
# Build a jar from the specified Java source files
jar jar(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
java_resources : structured_src # Resources to be added to the jar
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
main_class : str # Main class for running the built jar
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
vala_args : list[str | file] # Compiler flags for Vala
win_subsystem : str # Specifies the subsystem type to use
)
Argumente
Die Funktion jar() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert jar() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
java_resources |
structured_src |
Ressourcen, die zum Jar hinzugefügt werden sollen |
(seit 0.62.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
main_class |
str |
Hauptklasse zum Ausführen des kompilierten Jars |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
join_paths()
Verkettet die gegebenen Strings zu einem Pfadsegment des Dateisystems. Zum Beispiel ergibt join_paths('foo', 'bar') foo/bar. Wenn eines der einzelnen Segmente ein absoluter Pfad ist, werden alle vorherigen Segmente verworfen. Das bedeutet, dass join_paths('foo', '/bar') /bar zurückgibt.
(seit 0.49.0) Die Verwendung des /-Operators für Strings ist äquivalent zum Aufruf von join_paths().
# res1 and res2 will have identical values
res1 = join_paths(foo, bar)
res2 = foo / bar
Signatur
(seit 0.36.0)
# Joins the given strings into a file system path segment
str join_paths(
str part..., # The path parts to join
)
Verwenden Sie join_paths() nicht für Quellen in library() und executable(). Sie sollten stattdessen files() verwenden.
Argumente
Die Funktion akzeptiert zwischen 1 und unendlich variable Argumente (part...) vom Typ .str
Die zu verbindenden Pfadteile.
library()
Erstellt eine Bibliothek, die entweder statisch, dynamisch oder beides ist, abhängig vom Wert der Benutzeroption default_library . Sie sollten dies meistens anstelle von shared_library(), static_library() oder both_libraries() verwenden. Dies ermöglicht es Ihnen, Ihr gesamtes Projekt (einschließlich Subprojekte) mit nur einer Option von dynamisch auf statisch umzuschalten. Diese Option gilt für intern im gesamten Projekt erstellte Bibliotheken. Für externe Abhängigkeiten ist der standardmäßig bevorzugte Bibliothekstyp dynamisch. Dies kann pro Bibliothek über das Schlüsselwort static von dependency() angepasst werden.
Die Schlüsselwortargumente hierfür sind dieselben wie für build_target()
Signatur
# Builds a library that is either static, shared or both depending on
lib library(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
<lang>_shared_args : list[str] # Arguments that are only passed to a shared library
<lang>_static_args : list[str] # Arguments that are only passed to a static library
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
darwin_versions : str | int | list[str] # Defines the `compatibility version` and `current version` for the dylib on macOS
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
pic : bool # Builds the library as positional independent code
prelink : bool # If `true` the object files in the target will be prelinked,
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
soversion : str | int # A string or integer specifying the soversion of this shared library,
vala_args : list[str | file] # Compiler flags for Vala
vala_shared_args : list[str | file] # Arguments that are only passed to a shared library
vala_static_args : list[str | file] # Arguments that are only passed to a static library
version : str # A string specifying the version of this shared library,
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
using
Argumente
Die Funktion library() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert library() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
<lang>_shared_args |
list[str] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden |
(seit 1.3.0) |
<lang>_static_args |
list[str] |
Argumente, die nur an eine statische Bibliothek übergeben werden |
(seit 1.3.0) |
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
darwin_versions |
str | int | list[str] |
Definiert die |
(seit 0.48.0) |
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
pic |
bool |
Erstellt die Bibliothek als positionsunabhängigen Code (damit sie in eine dynamische Bibliothek gelinkt werden kann). Diese Option hat keine Auswirkung unter Windows und OS X, da sie unter Windows nicht sinnvoll ist und PIC unter OS X nicht deaktiviert werden kann. |
(seit 0.36.0) |
prelink |
bool |
Wenn |
(seit 0.57.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
soversion |
str | int |
Eine Zeichenkette oder Ganzzahl, die die Soversion dieser dynamischen Bibliothek angibt, z. B. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
vala_shared_args |
list[str | file] |
Argumente, die nur an eine dynamische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
vala_static_args |
list[str | file] |
Argumente, die nur an eine statische Bibliothek übergeben werden. Ähnlich wie |
(seit 1.3.0) |
Version |
str |
Ein String, der die Version dieser Shared Library angibt, z. B. |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). (Seit 1.3.0) |
|
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
message()
Diese Funktion gibt ihr Argument auf stdout aus.
Signatur
# This function prints its argument to stdout
void message(
str | int | bool | list[str | int | bool] | dict[str | int | bool] text, # The message to print
str | int | bool | list[str | int | bool] | dict[str | int | bool] more_text..., # Additional text that will be printed separated by spaces
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion message() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
text |
str | int | bool | list[str | int | bool] | dict[str | int | bool] |
Die auszugebende Nachricht. |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (more_text...) vom Typ .str | int | bool | list[str | int | bool] | dict[str | int | bool]
Zusätzlicher Text, der durch Leerzeichen getrennt ausgegeben wird.
(seit 0.54.0)
project()
Die erste in jedem Projekt aufgerufene Funktion, um Meson zu initialisieren.
Das erste Argument dieser Funktion muss ein String sein, der den Namen dieses Projekts definiert.
Der Projektname kann jeder gewünschte String sein, er wird nur zu beschreibenden Zwecken verwendet. Da er jedoch in z. B. das Abhängigkeitsmanifest geschrieben wird, ist es normalerweise sinnvoll, ihn gleich dem Projekttarball oder dem pkg-config-Namen zu wählen. So würden Sie wahrscheinlich eher den Namen libfoobar anstelle von The Foobar Library verwenden.
Es kann gefolgt von der Liste der Programmiersprachen sein, die das Projekt verwendet.
(seit 0.40.0) Die Liste der Sprachen ist optional.
Diese Sprachen können sowohl für native: false (Standard) (Host-Maschine) Ziele als auch für native: true (Build-Maschine) Ziele verwendet werden. (seit 0.56.0) Die Compiler der Build-Maschine für die angegebenen Sprachen sind nicht erforderlich.
Unterstützte Werte für Sprachen sind c, cpp (für C++), cuda, cython, d, objc, objcpp, fortran, java, cs (für C#), vala und rust.
Signatur
# The first function called in each project, to initialize Meson
void project(
str project_name, # The name of the project
str language..., # The languages that Meson should initialize
# Keyword arguments:
default_options : list[str] | dict[str | bool | int | list[str]] # Accepts strings in the form `key=value`
license : str | list[str] # Takes a string or array of strings describing the license(s) the code is under
license_files : str | list[str] # Takes a string or array of strings with the paths to the license file(s)
meson_version : str # Takes a string describing which Meson version the project requires
subproject_dir : str # Specifies the top level directory name that holds Meson subprojects
version : str | file # A free form string describing the version of this project
)
Argumente
Die Funktion project() akzeptiert die folgenden Positionsargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
project_name |
str |
Der Name des Projekts. |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (language...) vom Typ .str
Die Sprachen, die Meson initialisieren soll.
Schließlich akzeptiert project() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
default_options |
list[str] | dict[str | bool | int | list[str]] |
Akzeptiert Zeichenketten im Format Beachten Sie, dass einige Optionen das Standardverhalten überschreiben können; die Verwendung von (seit 1.2.0): Es kann nun ein Dictionary übergeben werden. |
|
license |
str | list[str] |
Akzeptiert eine Zeichenkette oder ein Array von Zeichenketten, die die Lizenz(en) beschreiben, unter denen der Code steht. Dies sollte ein SPDX-Lizenz-Ausdruck sein, der die standardisierte Lizenzkennung aus der SPDX-Lizenzliste verwendet. Normalerweise wäre dies so etwas wie Aus Kompatibilitätsgründen können Sie hier auch ein Array von Lizenzen übergeben. Dies wird nicht empfohlen, da es mehrdeutig ist: Beachten Sie, dass der Text informell ist und nur in das Abhängigkeitsmanifest geschrieben wird. Meson führt keine Lizenzvalidierung durch; Sie sind dafür verantwortlich, zu überprüfen, ob Sie alle Lizenzbedingungen einhalten. Sie können auf den Wert in Ihren Meson-Build-Dateien mit |
|
license_files |
str | list[str] |
Akzeptiert eine Zeichenkette oder ein Array von Zeichenketten mit den Pfaden zu den Lizenzdateien, unter denen der Code steht. Dies erweitert den Wert des `license`-Schlüsselwortarguments, indem sowohl der kurze Lizenzname als auch der vollständige Lizenztext angegeben werden können. Normalerweise wäre dies so etwas wie Beachten Sie, dass die Dateien informell sind und nur zusammen mit dem Abhängigkeitsmanifest installiert werden. Meson führt keine Lizenzvalidierung durch; Sie sind dafür verantwortlich, zu überprüfen, ob Sie alle Lizenzbedingungen einhalten. Sie können auf den Wert in Ihren Meson-Build-Dateien mit |
(seit 1.1.0) |
meson_version |
str |
Akzeptiert eine Zeichenkette, die beschreibt, welche Meson-Version das Projekt benötigt. Normalerweise so etwas wie |
|
subproject_dir |
str |
Gibt den Namen des Top-Level-Verzeichnisses an, das Meson-Unterprojekte enthält. Dies ist nur als Kompatibilitätsoption für bestehende Codebasen gedacht, die ihren eingebetteten Quellcode in einem benutzerdefinierten Verzeichnis unterbringen. Alle neuen Projekte sollten dies nicht setzen, sondern den Standardwert verwenden. Es ist zu beachten, dass dieses Schlüsselwortargument in Unterprojekten ignoriert wird. Es kann nur ein Unterprojektverzeichnis geben, und es wird in der Top-Level-Meson-Datei gesetzt. |
|
Version |
str | file |
Eine Freitextzeichenkette, die die Version dieses Projekts beschreibt. Sie können auf den Wert in Ihren Meson-Build-Dateien mit |
|
range()
Gibt ein opakes Objekt zurück, das nur in foreach-Anweisungen verwendet werden kann.
range range(int stop)
range range(int start, int stop[, int step])
-
startmuss eine Ganzzahl größer oder gleich 0 sein. Standardwert ist 0. -
stopmuss eine Ganzzahl größer oder gleichstartsein. -
stepmuss eine Ganzzahl größer oder gleich 1 sein. Standardwert ist 1.
Dies bewirkt, dass die foreach-Schleife mit dem Wert von start (einschließlich) bis stop (ausschließlich) mit einer Schrittweite von step nach jeder Schleife aufgerufen wird.
Signatur
(seit 0.58.0)
# Return an opaque object that can be only be used in `foreach` statements
range range(
int [start], # The start of the range
int [stop], # The end of the range
int [step], # The loop increment
)
Beispiel
# Loop 15 times with i from 0 to 14 included.
foreach i : range(15)
...
endforeach
Das Bereichsobjekt kann auch einer Variablen zugewiesen und indiziert werden.
r = range(5, 10, 2)
assert(r[2] == 9)
Argumente
Die Funktion range() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
start |
int |
Der Anfang des Bereichs |
[optional]
|
stop |
int |
Das Ende des Bereichs |
[optional] |
step |
int |
Die Schleifeninkrementierung |
[optional]
|
run_command()
Führt den in den positionsgebundenen Argumenten angegebenen Befehl aus. command kann eine Zeichenkette sein oder die Ausgabe von find_program(), files() oder configure_file(), oder ein Compiler-Objekt.
Gibt ein runresult-Objekt zurück, das das Ergebnis des Aufrufs enthält. Der Befehl wird von einem nicht spezifizierten Verzeichnis aus ausgeführt, und Meson setzt drei Umgebungsvariablen MESON_SOURCE_ROOT, MESON_BUILD_ROOT und MESON_SUBDIR, die das Quellverzeichnis, das Build-Verzeichnis bzw. das Unterverzeichnis angeben, in dem das Ziel definiert wurde.
Siehe auch Externe Befehle.
Signatur
# Runs the command specified in positional arguments
runresult run_command(
str | file | external_program command..., # The command to execute during the setup process
# Keyword arguments:
capture : bool # If `true`, any output generated on stdout will be captured and returned by
check : bool # If `true`, the exit status code of the command will be checked,
env : env | list[str] | dict[str] # environment variables to set,
)
Argumente
Die Funktion akzeptiert zwischen 0 und unendlich variable Argumente (command...) vom Typ .str | file | external_program
Der auszuführende Befehl während des Einrichtungssprozesses.
Die Funktion run_command() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
capture |
bool |
Wenn |
(seit 0.47.0)
|
check |
bool |
Wenn |
(seit 0.47.0)
|
env |
env | list[str] | dict[str] |
Umgebungsvariablen, die gesetzt werden sollen, wie z. B. |
(seit 0.50.0) |
run_target()
Diese Funktion erstellt ein neues Top-Level-Ziel, das einen angegebenen Befehl mit den angegebenen Argumenten ausführt. Wie alle Top-Level-Ziele integriert sich dies in das ausgewählte Backend. Sie können es beispielsweise als meson compile target_name ausführen. Beachten Sie, dass ein Ausführungsziel in Bezug auf Meson keine Ausgabe erzeugt. Es dient nur für Aufgaben wie das Ausführen eines Code-Formatierers oder das Flashen der Firmware eines externen Geräts mit einer erstellten Datei.
Der Befehl wird von einem nicht spezifizierten Verzeichnis aus ausgeführt, und Meson setzt drei Umgebungsvariablen MESON_SOURCE_ROOT, MESON_BUILD_ROOT und MESON_SUBDIR, die das Quellverzeichnis, das Build-Verzeichnis bzw. das Unterverzeichnis angeben, in dem das Ziel definiert wurde.
Seit 0.57.0 Die an die command-Schlüsselwortargumente übergebenen Vorlagenzeichenketten akzeptieren die folgenden speziellen Ersetzungen
-
@SOURCE_ROOT@: der Pfad zum Stammverzeichnis des Quellcodes. Abhängig vom Backend kann dies ein absoluter oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein. -
@BUILD_ROOT@: der Pfad zum Stammverzeichnis des Build-Verzeichnisses. Abhängig vom Backend kann dies ein absoluter oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein. -
@CURRENT_SOURCE_DIR@Seit 0.57.1: Dies ist das Verzeichnis, in dem sich die aktuell verarbeitete meson.build-Datei befindet. Je nach Backend kann dies ein absoluter Pfad oder ein relativ zum aktuellen Arbeitsverzeichnis sein.
Signatur
# This function creates a new top-level target that runs a specified
run_tgt run_target(
str target_name, # The name of the run target
# Keyword arguments:
command : list[exe | external_program | custom_tgt | file | str] # A list containing the command to run and the arguments
depends : list[build_tgt | custom_tgt | custom_idx] # A list of targets that this target depends on but which
env : env | list[str] | dict[str] # environment variables to set, such as
)
Argumente
Die Funktion run_target() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der Name des Ausführungsziels |
|
Schließlich akzeptiert run_target() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
command |
list[exe | external_program | custom_tgt | file | str] |
Eine Liste, die den auszuführenden Befehl und die ihm zu übergebenden Argumente enthält. Jedes Listenelement kann eine Zeichenkette oder ein Ziel sein. Beispielsweise führt die Übergabe des Rückgabewerts von |
|
abhängig |
list[build_tgt | custom_tgt | custom_idx] |
Eine Liste von Zielen, von denen dieses Ziel abhängt, die aber nicht in der Befehlsmatrix aufgeführt sind (z. B. weil das Skript intern Dateiglobbing durchführt, custom_idx war zwischen 0.60 und 1.4.0 nicht als Typ möglich). |
|
env |
env | list[str] | dict[str] |
Umgebungsvariablen, die gesetzt werden sollen, wie z. B. |
(seit 0.57.0) |
set_variable()
Weist dem angegebenen Variablennamen einen Wert zu. Der Aufruf von set_variable('foo', bar) ist äquivalent zu foo = bar.
(seit 0.46.1) Der Parameter value kann vom Typ Array sein.
Signatur
# Assigns a value to the given variable name
void set_variable(
str variable_name, # The name of the variable to set
any value, # The value to set the variable to
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion set_variable() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
variable_name |
str |
Der Name der zu setzenden Variablen |
|
value |
any |
Der Wert, auf den die Variable gesetzt werden soll |
|
shared_library()
Erstellt eine Shared Library mit den gegebenen Quellen.
Signatur
# Builds a shared library with the given sources
lib shared_library(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
darwin_versions : str | int | list[str] # Defines the `compatibility version` and `current version` for the dylib on macOS
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
soversion : str | int # A string or integer specifying the soversion of this shared library,
vala_args : list[str | file] # Compiler flags for Vala
version : str # A string specifying the version of this shared library,
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
Argumente
Die Funktion shared_library() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert shared_library() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
darwin_versions |
str | int | list[str] |
Definiert die |
(seit 0.48.0) |
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
soversion |
str | int |
Eine Zeichenkette oder Ganzzahl, die die Soversion dieser dynamischen Bibliothek angibt, z. B. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
Version |
str |
Ein String, der die Version dieser Shared Library angibt, z. B. |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). (Seit 1.3.0) |
|
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
shared_module()
Erstellt ein Shared Module mit den gegebenen Quellen.
Dies ist nützlich zum Erstellen von Modulen, die mittels dlopen() geladen werden und daher undefinierte Symbole enthalten können, die von der ladenden Bibliothek bereitgestellt werden.
Wenn das Shared Module auf Funktionen und Variablen verweisen soll, die in der von ihm geladenen executable() definiert sind, müssen Sie das Argument export_dynamic der ausführbaren Datei auf true setzen.
Signatur
(seit 0.37.0)
# Builds a shared module with the given sources
build_tgt shared_module(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
vala_args : list[str | file] # Compiler flags for Vala
vs_module_defs : str | file | custom_tgt | custom_idx # Specify a Microsoft module definition file for controlling symbol exports,
win_subsystem : str # Specifies the subsystem type to use
)
Das Verlinken zu einem Shared Module auf anderen Plattformen als Android ist veraltet und wird in Zukunft ein Fehler sein. Es war früher erlaubt, weil es die einzige Möglichkeit war, ein Shared-Library-ähnliches Ziel zu haben, das Verweise auf undefinierte Symbole enthielt. Seit 0.40.0 kann jedoch das Schlüsselwortargument override_options: von build_target() verwendet werden, um eine solche shared_library() zu erstellen, indem override_options: 'b_lundef=false' übergeben wird. Shared Modules haben andere Eigenschaften, die sie mit dem Verlinken inkompatibel machen, wie z. B. das Fehlen von SONAME. Unter macOS und iOS ist das Verlinken zu Shared Modules durch den Linker nicht erlaubt, daher verbieten wir es zur Konfigurationszeit. Unter Android muss ein Shared Module foo, das Symbole aus einem anderen Shared Module bar verwendet, auch zu bar verlinkt werden. Daher ist das Verlinken eines Shared Modules zu einem anderen unter Android immer erlaubt.
Argumente
Die Funktion shared_module() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert shared_module() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
vs_module_defs |
str | file | custom_tgt | custom_idx |
Gibt eine Microsoft-Moduldefinitionsdatei zur Steuerung von Symbol-Exporten usw. auf Plattformen an, auf denen dies möglich ist (z. B. Windows). (Seit 1.3.0) |
(seit 0.52.0) |
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
static_library()
Erstellt eine statische Bibliothek mit den gegebenen Quellen.
Signatur
# Builds a static library with the given sources
lib static_library(
str target_name, # The *unique* name of the build target
str | file | custom_tgt | custom_idx | generated_list source..., # Input source to compile
# Keyword arguments:
<lang>_args : list[str] # compiler flags to use for the given language;
<lang>_pch : str # precompiled header file to use for the given language
build_by_default : bool # Causes, when set to `true`, to have this target be built by default
build_rpath : str # A string to add to target's rpath definition in the build dir,
d_debug : list[str] # The [D version identifiers](https://dlang
d_import_dirs : list[inc | str] # the directories to add to the string search path (i
d_module_versions : list[str | int] # List of module version identifiers set when compiling D sources
d_unittest : bool # When set to true, the D modules are compiled in debug mode
dependencies : list[dep] # one or more dependency objects
extra_files : str | file | custom_tgt | custom_idx # Not used for the build itself but are shown as source files in IDEs
gnu_symbol_visibility : str # Specifies how symbols should be exported, see
gui_app : bool # When set to true flags this target as a GUI application
implicit_include_directories : bool # Controls whether Meson adds the current source and build directories to the include path
include_directories : list[inc | str] # one or more objects created with the include_directories() function,
install : bool # When set to true, this executable should be installed
install_dir : str # override install directory for this file
install_mode : list[str | int] # Specify the file mode in symbolic format
install_rpath : str # A string to set the target's rpath to after install
install_tag : str # A string used by the `meson install --tags` command
link_args : list[str] # Flags to use during linking
link_depends : str | file | custom_tgt | custom_idx # Strings, files, or custom targets the link step depends on
link_language : str # Makes the linker for this target be for the specified language
link_whole : list[lib | custom_tgt | custom_idx] # Links all contents of the given static libraries whether they are used or
link_with : list[lib | custom_tgt | custom_idx] # One or more shared or static libraries
name_prefix : str | list[void] # The string that will be used as the prefix for the
name_suffix : str | list[void] # The string that will be used as the extension for the
native : bool # Controls whether the target is compiled for the build or host machines
objects : list[extracted_obj | file | str] # List of object files that should be linked in this target
override_options : list[str] | dict[str | bool | int | list[str]] # takes an array of strings in the same format as `project`'s `default_options`
pic : bool # Builds the library as positional independent code
prelink : bool # If `true` the object files in the target will be prelinked,
rust_abi : str # Set the specific ABI to compile (when compiling rust)
rust_crate_type : str # Set the specific type of rust crate to compile (when compiling rust)
rust_dependency_map : dict[str] # On rust targets this provides a map of library names to the crate name
sources : str | file | custom_tgt | custom_idx | generated_list | structured_src # Additional source files
vala_args : list[str | file] # Compiler flags for Vala
win_subsystem : str # Specifies the subsystem type to use
)
Argumente
Die Funktion static_library() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
zielname |
str |
Der *eindeutige* Name des Build-Ziels |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (quelle...) vom Typ .str | file | custom_tgt | custom_idx | generated_list
Eingabequelle zum Kompilieren. Die folgenden Typen werden unterstützt
- Zeichenketten relativ zum aktuellen Quellverzeichnis
-
file-Objekte, die in früheren Build-Dateien definiert wurden - Der Rückgabewert von Konfigurationszeit-Generatoren wie
configure_file() - Der Rückgabewert von Build-Zeit-Generatoren wie
custom_target()odergenerator.process()
Diese Eingabedateien können Quellen, Objekte, Bibliotheken oder beliebige andere Dateien sein. Meson kategorisiert sie automatisch anhand der Erweiterung und verwendet sie entsprechend. Zum Beispiel werden Quellen (.c, .cpp, .vala, .rs usw.) kompiliert und Objekte (.o, .obj) und Bibliotheken (.so, .dll usw.) verknüpft.
Mit dem Ninja-Backend erstellt Meson eine Build-Zeit-Abhängigkeit (order-only dependency) für alle generierten Eingabedateien, einschließlich unbekannter Dateien. Dies ist notwendig, um die Generierung der tatsächlichen Abhängigkeiten in der von Ihrem Compiler generierten Depfile zu bootstrappen, um zu bestimmen, wann Quellen neu kompiliert werden müssen. Ninja stützt sich für alle Eingabedateien, generierten und nicht generierten, auf diese Abhängigkeitsdatei. Das Verhalten ist für andere Backends ähnlich.
Schließlich akzeptiert static_library() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
<lang>_args |
list[str] |
Compiler-Flags für die angegebene Sprache; z. B. |
|
<lang>_pch |
str |
Vorkompilierte Header-Datei für die angegebene Sprache |
|
build_by_default |
bool |
Wenn auf |
(seit 0.38.0)
|
build_rpath |
str |
Eine Zeichenkette, die der RPATH-Definition des Ziels im Build-Verzeichnis hinzugefügt wird, aber bei der Installation entfernt wird |
(seit 0.42.0) |
d_debug |
list[str] |
Die D-Versions-Identifikatoren, die während der Kompilierung von D-Quelldateien hinzugefügt werden sollen. |
|
d_import_dirs |
list[inc | str] |
Die Verzeichnisse, die zum String-Suchpfad hinzugefügt werden sollen (d. h. der |
(seit 0.62.0) |
d_module_versions |
list[str | int] |
Liste der Modulversions-Identifikatoren, die beim Kompilieren von D-Quellen gesetzt werden. |
|
d_unittest |
bool |
Wenn true gesetzt, werden die D-Module im Debug-Modus kompiliert. |
|
dependencies |
list[dep] |
Ein oder mehrere Abhängigkeitsobjekte, die mit |
|
extra_files |
str | file | custom_tgt | custom_idx |
Nicht für den Build selbst verwendet, aber in IDEs, die Dateien nach Zielen gruppieren (wie z. B. Visual Studio), als Quelldateien angezeigt. |
|
gnu_symbol_visibility |
str |
Gibt an, wie Symbole exportiert werden sollen, siehe z. B. das GCC-Wiki für weitere Informationen. Dieser Wert kann entweder eine leere Zeichenkette oder einer der Werte |
(seit 0.48.0) |
gui_app |
bool |
Wenn true gesetzt, kennzeichnet dieses Ziel als GUI-Anwendung auf Plattformen, wo dies einen Unterschied macht, veraltet seit 0.56.0, verwenden Sie stattdessen |
VERALTET in 0.56.0
|
implicit_include_directories |
bool |
Steuert, ob Meson die aktuellen Quell- und Build-Verzeichnisse zum Include-Pfad hinzufügt |
(seit 0.42.0)
|
include_directories |
list[inc | str] |
Ein oder mehrere Objekte, die mit der Funktion |
|
installieren |
bool |
Wenn true gesetzt, soll diese ausführbare Datei installiert werden. |
|
install_dir |
str |
Überschreibt das Installationsverzeichnis für diese Datei. Wenn der Wert ein relativer Pfad ist, wird er relativ zur Option |
|
install_mode |
list[str | int] |
Gibt den Dateimodus im symbolischen Format und optional den Besitzer/UID und Gruppe/GID für die installierten Dateien an. Siehe das Schlüsselwortargument |
(seit 0.47.0) |
install_rpath |
str |
Eine Zeichenkette, die den RPATH des Ziels nach der Installation setzt (aber *nicht* davor). Unter Windows hat dieses Argument keine Wirkung. |
|
install_tag |
str |
Eine Zeichenkette, die vom Befehl |
(seit 0.60.0) |
link_args |
list[str] |
Flags, die beim Verknüpfen verwendet werden. Sie können UNIX-ähnliche Flags hier für alle Plattformen verwenden. |
|
link_depends |
str | file | custom_tgt | custom_idx |
Zeichenketten, Dateien oder benutzerdefinierte Ziele, von denen der Linkschritt abhängt, wie z. B. eine Symbol-Visibility-Map. Der Zweck ist, ein erneutes Verknüpfen (aber kein erneutes Kompilieren) des Ziels automatisch auszulösen, wenn diese Datei geändert wird. |
|
link_language |
str |
Macht den Linker für dieses Ziel für die angegebene Sprache. Es ist im Allgemeinen unnötig, dies festzulegen, da Meson in den meisten Fällen den richtigen Linker erkennt. Es gibt nur zwei Fälle, in denen dies erforderlich ist. Erstens ist die Hauptfunktion in einer ausführbaren Datei nicht in der Sprache, die Meson ausgewählt hat, oder zweitens möchten Sie erzwingen, dass eine Bibliothek nur eine ABI verwendet. (bis 0.55.0 defekt) |
(seit 0.51.0) |
link_whole |
list[lib | custom_tgt | custom_idx] |
Verknüpft alle Inhalte der angegebenen statischen Bibliotheken, auch wenn sie nicht verwendet werden, äquivalent zum Argumentflag (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese abgeflacht. (seit 0.51.0) Dieses Argument akzeptiert auch Ausgaben von benutzerdefinierten Zielen. Der Benutzer muss sicherstellen, dass die Ausgabe eine Bibliothek im richtigen Format ist. |
(seit 0.40.0) |
link_with |
list[lib | custom_tgt | custom_idx] |
Eine oder mehrere dynamische oder statische Bibliotheken (die von diesem Projekt erstellt wurden), mit denen dieses Ziel verknüpft werden soll. (seit 0.41.0) Wenn eine Liste übergeben wird, wird diese Liste abgeflacht. (seit 0.51.0) Die Argumente können auch benutzerdefinierte Ziele sein. In diesem Fall geht Meson davon aus, dass allein die Angabe der Ausgabedatei in der Linker-Befehlszeile ausreicht, um die Verknüpfung zu ermöglichen. Wenn dies nicht ausreicht, muss der Build-System-Autor alle anderen Schritte manuell schreiben. |
|
name_prefix |
str | list[void] |
Die Zeichenkette, die als Präfix für den Ausgabedateinamen des Ziels verwendet wird, indem der Standard überschrieben wird (nur für Bibliotheken verwendet). Standardmäßig ist dies Setzen Sie dies auf |
|
name_suffix |
str | list[void] |
Die Zeichenkette, die als Erweiterung für das Ziel verwendet wird, indem der Standard überschrieben wird. Standardmäßig ist unter Windows Für dynamische Bibliotheken ist der Standardwert Setzen Sie dies auf |
|
native |
bool |
Steuert, ob das Ziel für die Build- oder Host-Maschine kompiliert wird. |
|
objekte |
list[extracted_obj | file | str] |
Liste der Objektdateien, die in diesem Ziel verknüpft werden sollen. Seit 1.1.0 kann dies generierte Dateien zusätzlich zu Objektdateien enthalten, für die Sie keine Quelle haben, oder die von anderen Build-Zielen erzeugte Objektdateien. In früheren Versionen mussten generierte Objektdateien in |
|
override_options |
list[str] | dict[str | bool | int | list[str]] |
Nimmt ein Array von Zeichenketten im selben Format wie die |
(seit 0.40.0) |
pic |
bool |
Erstellt die Bibliothek als positionsunabhängigen Code (damit sie in eine dynamische Bibliothek gelinkt werden kann). Diese Option hat keine Auswirkung unter Windows und OS X, da sie unter Windows nicht sinnvoll ist und PIC unter OS X nicht deaktiviert werden kann. |
(seit 0.36.0) |
prelink |
bool |
Wenn |
(seit 0.57.0) |
rust_abi |
str |
Setzt die spezifische ABI, die kompiliert werden soll (beim Kompilieren von Rust).
|
(seit 1.3.0) |
rust_crate_type |
str |
Setzt den spezifischen Typ der zu kompilierenden Rust-Kiste (beim Kompilieren von Rust). Wenn das Ziel eine Wenn es sich um eine Wenn es sich um eine "proc-macro" ist neu in 0.62.0. Seit 1.3.0 ist dies veraltet und ersetzt durch das Schlüsselwortargument "rust_abi". |
(seit 0.42.0) VERALTET in 1.3.0 |
rust_dependency_map |
dict[str] |
Bei Rust-Zielen bietet dies eine Zuordnung von Bibliotheksnamen zum Kistenamen, unter dem sie im Rust-Code verfügbar wären. Dies ermöglicht Umbenennungen ähnlich der Abhängigkeitsumbenennungsfunktion von Cargo oder |
(seit 1.2.0) |
sources |
str | file | custom_tgt | custom_idx | generated_list | structured_src |
Zusätzliche Quellcodedateien. Ähnlich wie die Quellcode-Varargs. |
|
vala_args |
list[str | file] |
Compiler-Flags für Vala. Im Gegensatz zu anderen Sprachen können diese Dateien enthalten |
|
win_subsystem |
str |
Gibt den Subsystemtyp für die Windows-Plattform an. Typische Werte sind |
(seit 0.56.0)
|
structured_sources()
Erstellt ein StructuredSource-Objekt, das opakt ist und als Quelle für jedes build_target (einschließlich static_library, shared_library, executable usw.) übergeben werden kann. Dies ist nützlich für Sprachen wie Rust, die das Dateisystemlayout zur Bestimmung von Importnamen verwenden. Dies ist nur in Rust-Zielen erlaubt und kann nicht mit nicht-strukturierten Eingaben gemischt werden.
Signatur
(seit 0.62.0)
# Create a StructuredSource object, which is opaque and may be passed as a source
structured_src structured_sources(
list[str | file | custom_tgt | custom_idx | generated_list] root, # Sources to put at the root of the generated structure
dict[str | file | custom_tgt | custom_idx | generated_list] [additional], # Additional sources, where the key is the directory under the root to place
)
Argumente
Die Funktion structured_sources() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
root |
list[str | file | custom_tgt | custom_idx | generated_list] |
Quellen, die im Stammverzeichnis der generierten Struktur platziert werden sollen |
|
additional |
dict[str | file | custom_tgt | custom_idx | generated_list] |
Zusätzliche Quellen, wobei der Schlüssel das Verzeichnis unterhalb des Stamms ist, in dem die Werte platziert werden sollen |
[optional] |
subdir()
Betritt das angegebene Unterverzeichnis und führt die darin befindliche meson.build-Datei aus. Sobald dies geschehen ist, kehrt die Ausführung zur Zeile nach diesem subdir()-Befehl zurück. Variablen, die in dieser meson.build-Datei definiert sind, stehen dann für spätere Teile der aktuellen Build-Datei und für alle nachfolgenden Build-Dateien, die mit subdir() ausgeführt werden, zur Verfügung.
Beachten Sie, dass jede meson.build-Datei in einem Quellbaum nur einmal ausgeführt werden kann und muss.
Signatur
# Enters the specified subdirectory and executes the `meson
void subdir(
str dir_name, # Directory relative to the current `meson
# Keyword arguments:
if_found : list[dep] # Only enter the subdir if all dep.found() methods return `true`.
)
Argumente
Die Funktion subdir() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
dir_name |
str |
Verzeichnis relativ zur aktuellen Darf |
|
Schließlich akzeptiert subdir() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
if_found |
list[dep] |
Betritt das Unterverzeichnis nur, wenn alle |
(seit 0.44.0) |
subdir_done()
Stoppt die weitere Interpretation der Meson-Skriptdatei ab dem Punkt des Aufrufs. Alle bis zu diesem Punkt ausgeführten Schritte sind gültig und werden von Meson ausgeführt. Das bedeutet, dass alle vor dem Aufruf von subdir_done() definierten Ziele gebaut werden.
Wenn das aktuelle Skript durch subdir aufgerufen wurde, kehrt die Ausführung zum aufrufenden Verzeichnis zurück und fährt fort, als ob das Skript das Ende erreicht hätte. Wenn das aktuelle Skript das Top-Level-Skript ist, konfiguriert Meson das Projekt wie bis zu diesem Punkt definiert.
Signatur
(seit 0.46.0)
void subdir_done()
Beispiel
project('example exit', 'cpp')
executable('exe1', 'exe1.cpp')
subdir_done()
executable('exe2', 'exe2.cpp')
Die ausführbare Datei exe1 wird gebaut, während die ausführbare Datei exe2 nicht gebaut wird.
subproject()
Nimmt das in den positionsgebundenen Argumenten angegebene Projekt und bringt es in die aktuelle Build-Spezifikation, indem es ein subproject-Objekt zurückgibt. Unterprojekte müssen immer im Verzeichnis subprojects im obersten Quellverzeichnis platziert werden. Ein Unterprojekt namens foo muss sich also beispielsweise in ${MESON_SOURCE_ROOT}/subprojects/foo befinden.
-
default_options(seit 0.37.0): ein Array von Standard-Optionswerten, die diejenigen überschreiben, die in dermeson.optionsdes Unterprojekts gesetzt sind (wiedefault_optionsinprojecthaben sie nur Wirkung, wenn Meson zum ersten Mal ausgeführt wird, und Kommandozeilenargumente überschreiben alle Standardoptionen in Build-Dateien). (seit 0.54.0): Die integrierte Optiondefault_librarykann ebenfalls überschrieben werden. (seit 1.2.0): Es kann ein Dictionary anstelle eines Arrays übergeben werden. -
version: funktioniert genauso wie beidependency. Sie gibt an, welche Version das Unterprojekt haben soll, z. B.>=1.0.1 -
required(seit 0.48.0): Standardmäßig istrequiredauftruegesetzt und Meson wird abgebrochen, wenn das Unterprojekt nicht eingerichtet werden konnte. Sie können dies auffalsesetzen und dann die Methode.found()auf demsubproject-Objekt verwenden. Sie können auch den Wert einerfeature-Option übergeben, wie beidependency().
Beachten Sie, dass Sie das zurückgegebene subproject-Objekt verwenden können, um auf jede Variable im Unterprojekt zuzugreifen. Wenn Sie jedoch ein Abhängigkeitsobjekt aus einem Unterprojekt verwenden möchten, ist ein einfacherer Weg, das Schlüsselwortargument fallback: für dependency() zu verwenden.
Weitere Dokumentation anzeigen.
Signatur
# Takes the project specified in the positional argument and brings that
subproject subproject(
str subproject_name, # Name of the subproject
# Keyword arguments:
default_options : list[str] | dict[str | bool | int | list[str]] # An array of default option values
required : bool | feature # Works just the same as in dependency().
version : str # Works just like the same as in dependency().
)
Argumente
Die Funktion subproject() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
subproject_name |
str |
Name des Unterprojekts. Das Unterprojekt muss sich im Verzeichnis |
|
Schließlich akzeptiert subproject() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
default_options |
list[str] | dict[str | bool | int | list[str]] |
Ein Array von Standard-Optionswerten, die diejenigen überschreiben, die in der |
(seit 0.37.0) |
erforderlich |
bool | feature |
Funktioniert genauso wie bei |
(seit 0.48.0)
|
Version |
str |
Funktioniert genauso wie bei |
|
summary()
Diese Funktion wird verwendet, um die Build-Konfiguration am Ende des Build-Prozesses zusammenzufassen. Diese Funktion bietet Projekten (und Unterprojekten) eine Möglichkeit, diese Informationen klar zu berichten.
Der Inhalt besteht aus einer Reihe von Schlüssel-Wert-Paaren, die in Abschnitte gruppiert sind. Wenn das Schlüsselwortargument section weggelassen wird, werden diese Schlüssel-Wert-Paare implizit in einem Abschnitt ohne Titel gruppiert. Schlüssel-Wert-Paare können optional in einem Dictionary gruppiert werden, aber bedenken Sie, dass Dictionaries keine garantierte Reihenfolge haben. key muss eine Zeichenkette sein, value kann sein
- eine Ganzzahl, ein Boolean oder eine Zeichenkette
- seit 0.57.0 ein externes Programm oder eine Abhängigkeit
- seit 0.58.0 eine Feature-Option
- eine Liste davon.
Anstatt summary als summary(key, value) aufzurufen, ist es auch möglich, direkt ein Dictionary an die Funktion summary() zu übergeben, wie im folgenden Beispiel zu sehen ist.
summary() kann mehrmals aufgerufen werden, solange das gleiche Abschnitt/Schlüssel-Paar nicht zweimal vorkommt. Alle Abschnitte werden gesammelt und am Ende der Konfiguration in der gleichen Reihenfolge, in der sie aufgerufen wurden, ausgegeben.
Signatur
(seit 0.53.0)
# This function is used to summarize build configuration at the end of the build
void summary(
str | dict[str | bool | int | dep | external_program | list[str | bool | int | dep | external_program]] key_or_dict, # The name of the new entry, or a dict containing multiple entries
str | bool | int | dep | external_program | list[str | bool | int | dep | external_program] [value], # The value to print for the `key`
# Keyword arguments:
bool_yn : bool # Convert bool values to yes and no
list_sep : str # The separator to use when printing list values in this summary
section : str # The section to put this summary information under
)
Beispiel
Beispiel meson.build
project('My Project', version : '1.0')
summary({'bindir': get_option('bindir'),
'libdir': get_option('libdir'),
'datadir': get_option('datadir'),
}, section: 'Directories')
summary({'Some boolean': false,
'Another boolean': true,
'Some string': 'Hello World',
'A list': ['string', 1, true],
}, section: 'Configuration')
Ausgabe
My Project 1.0
Directories
prefix : /opt/gnome
bindir : bin
libdir : lib/x86_64-linux-gnu
datadir : share
Configuration
Some boolean : False
Another boolean: True
Some string : Hello World
A list : string
1
True
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion summary() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
key_or_dict |
str | dict[str | bool | int | dep | external_program | list[str | bool | int | dep | external_program]] |
Der Name des neuen Eintrags oder ein Dictionary, das mehrere Einträge enthält. Wenn ein Dictionary übergeben wird, entspricht dies dem einmaligen Aufruf von summary() für jedes Schlüssel-Wert-Paar. Beachten Sie, dass Dictionaries keine Reihenfolge garantieren. |
|
value |
str | bool | int | dep | external_program | list[str | bool | int | dep | external_program] |
Der Wert, der für den |
[optional] |
Schließlich akzeptiert summary() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
bool_yn |
bool |
Konvertiert Boolesche Werte in Ja und Nein |
|
list_sep |
str |
Der Trenner, der beim Ausgeben von Listenwerten in dieser Zusammenfassung verwendet werden soll. Wenn kein Trenner angegeben wird, wird jedes Listenelement auf einer eigenen Zeile ausgegeben. |
(seit 0.54.0) |
section |
str |
Der Abschnitt, unter dem diese Zusammenfassungsinformationen platziert werden sollen. Wenn das Schlüsselwortargument |
|
test()
Definiert einen Test, der mit dem Test-Framework ausgeführt werden soll. Nimmt zwei positionsgebundene Argumente entgegen: das erste ist der Name des Tests und das zweite die auszuführende ausführbare Datei. Die ausführbare Datei kann ein exe-Objekt sein, das von executable() zurückgegeben wird, oder ein external_program-Objekt], das von find_program() zurückgegeben wird.
(seit 0.55.0) Beim Cross-Compiling wird, wenn ein exe_wrapper benötigt und definiert ist, die Umgebungsvariable MESON_EXE_WRAPPER auf den Zeichenkettenwert dieses Wrappers gesetzt (Implementierungsdetail: Verwendung von mesonlib.join_args). Testskripte können dies verwenden, um Cross-Compilierungs-Binärdateien auszuführen. Wenn Ihr Test MESON_EXE_WRAPPER in Cross-Compile-Situationen benötigt, sind Sie dafür verantwortlich, den Rückgabecode 77 zurückzugeben, um dem Harness zu melden, dass er überspringen soll.
Standardmäßig wird die Umgebungsvariable MALLOC_PERTURB_ automatisch von meson test auf einen zufälligen Wert zwischen 1 und 255 gesetzt. Dies kann helfen, Speicherlecks in Konfigurationen zu finden, die glibc verwenden, auch mit Nicht-GCC-Compilern. Dies kann jedoch die Leistung beeinträchtigen und einen Test aufgrund externer Bibliotheken fehlschlagen lassen, deren Interna außerhalb der Kontrolle des Benutzers liegen. Um zu überprüfen, ob diese Funktion einen erwarteten Laufzeitabsturz verursacht, deaktivieren Sie die Funktion, indem Sie vorübergehend die Umgebungsvariable MALLOC_PERTURB_=0 setzen. Während es vorzuziehen ist, diese Überprüfung nur vorübergehend zu deaktivieren, wenn ein Projekt eine dauerhafte Deaktivierung dieser Überprüfung in meson.build erfordert, tun Sie Folgendes:
nomalloc = environment({'MALLOC_PERTURB_': '0'})
test(..., env: nomalloc, ...)
Standardmäßig werden die Umgebungsvariablen ASAN_OPTIONS, UBSAN_OPTIONS und MSAN_OPTIONS so gesetzt, dass bei erkannten Verletzungen ein Abbruch erfolgt und eine Rückverfolgung erfolgt. Um dies zu unterdrücken, können ASAN_OPTIONS, UBSAN_OPTIONS oder MSAN_OPTIONS in der Umgebung gesetzt werden.
Zusätzlich zur Ausführung einzelner ausführbarer Dateien als Testfälle kann test() auch verwendet werden, um ein externes Test-Framework aufzurufen. In diesem Fall ist es am besten, verbose: true (seit 0.62.0) und, falls vom externen Framework unterstützt, protocol: 'tap' (seit 0.50.0) zu verwenden. Dadurch wird sichergestellt, dass Meson jeden Subtest beim Ausführen protokolliert, anstatt das gesamte Protokoll am Ende der Ausführung einzufügen.
Definierte Tests können auf eine Backend-unabhängige Weise ausgeführt werden, indem meson test im Build-Verzeichnis aufgerufen wird, oder durch die Verwendung von Backend-spezifischen Befehlen wie ninja test oder msbuild RUN_TESTS.vcxproj.
Signatur
# Defines a test to run with the test harness
void test(
str name, # The *unique* test id
exe | jar | external_program | file | custom_tgt | custom_idx executable, # The program to execute
# Keyword arguments:
args : list[str | file | tgt | external_program] # Arguments to pass to the executable
depends : list[build_tgt | custom_tgt] # specifies that this test depends on the specified
env : env | list[str] | dict[str] # environment variables to set, such as `['NAME1=value1',
is_parallel : bool # when false, specifies that no other test must be
priority : int # specifies the priority of a test
protocol : str # specifies how the test results are parsed and can
should_fail : bool # when true the test is considered passed if the
suite : str | list[str] # `'label'` (or list of labels `['label1', 'label2']`)
timeout : int # the amount of seconds the test is allowed to run, a test
verbose : bool # if true, forces the test results to be logged as if `--verbose` was passed
workdir : str # absolute path that will be used as the working directory
)
Argumente
Die Funktion test() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
name |
str |
Die *eindeutige* Test-ID |
|
ausführbare Datei |
exe | jar | external_program | file | custom_tgt | custom_idx |
Das auszuführende Programm. (Seit 1.4.0) Ein benutzerdefiniertes Ziel wird ebenfalls akzeptiert. |
|
Schließlich akzeptiert test() die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
args |
list[str | file | tgt | external_program] |
Argumente, die an die ausführbare Datei übergeben werden sollen |
|
abhängig |
list[build_tgt | custom_tgt] |
gibt an, dass dieser Test von den angegebenen Zielen abhängt, obwohl er keines davon als Befehlszeilenargument nimmt. Dies ist für Fälle gedacht, in denen der Test diese Ziele intern findet, z. B. Plugins oder Globbing. Diese Ziele werden erstellt, bevor der Test ausgeführt wird, auch wenn sie |
(seit 0.46.0) |
env |
env | list[str] | dict[str] |
Umgebungsvariablen, die gesetzt werden sollen, wie z. B. |
|
is_parallel |
bool |
Wenn |
|
Priorität |
int |
gibt die Priorität eines Tests an. Tests mit höherer Priorität werden *gestartet* vor Tests mit niedrigerer Priorität. Die Startreihenfolge von Tests mit identischen Prioritäten ist Implementierungs-abhängig. Die Standardpriorität ist 0, negative Zahlen sind zulässig. |
(seit 0.52.0)
|
Protokoll |
str |
gibt an, wie die Testergebnisse analysiert werden und kann einer von
|
(seit 0.50.0)
|
sollte_fehlen |
bool |
Wenn true, gilt der Test als erfolgreich, wenn das ausführbare Programm einen Rückgabewert ungleich Null zurückgibt (d. h. einen Fehler meldet) |
|
Suite |
str | list[str] |
|
|
Timeout |
int |
Die Anzahl der Sekunden, die der Test laufen darf. Ein Test, der seine Zeitgrenze überschreitet, gilt immer als fehlgeschlagen. Standardmäßig 30 Sekunden. Seit 0.57, wenn timeout |
|
ausführlich |
bool |
Wenn true, werden die Testergebnisse zwangsweise protokolliert, als ob |
(seit 0.62.0)
|
Arbeitsverzeichnis |
str |
Absoluter Pfad, der als Arbeitsverzeichnis für den Test verwendet wird |
|
unset_variable()
Entfernt eine Variable. Der Verweis auf eine Variable, die entfernt wurde, ist ein Fehler, bis sie wieder gesetzt wurde.
Signatur
(seit 0.60.0)
# Unsets a variable
void unset_variable(
str varname, # The variable to unset
)
Argumente
Die Funktion unset_variable() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
varname |
str |
Die zu entfernende Variable. |
|
vcs_tag()
Dieser Befehl erkennt die Versionskontroll-Commit-Informationen zur Build-Zeit und platziert sie in der angegebenen Ausgabedatei. Diese Datei ist bei jedem Build garantiert aktuell. Schlüsselwörter sind ähnlich wie bei custom_target().
Meson liest den Inhalt von input, ersetzt den replace_string mit der erkannten Revisionsnummer und schreibt das Ergebnis nach output. Diese Methode gibt ein custom_tgt-Objekt zurück, das (wie üblich) verwendet werden sollte, um Abhängigkeiten zu signalisieren, wenn andere Ziele die von diesem ausgegebene Datei verwenden.
Wenn Sie beispielsweise eine Header-Datei damit generieren und diese in einem Build-Ziel verwenden möchten, müssen Sie den Rückgabewert zu den Quellen dieses Build-Ziels hinzufügen. Ohne dies weiß Meson nicht, in welcher Reihenfolge die Ziele gebaut werden sollen.
Wenn Sie ein spezifischeres Verhalten als das, was dieser Befehl bietet, wünschen, sollten Sie custom_target() verwenden.
Signatur
# This command detects revision control commit information at build time
custom_tgt vcs_tag(
command : list[exe | external_program | custom_tgt | file | str] # The command to execute, see custom_target() for details
fallback : str # Version number to use when no revision control information is present,
input : str [required] # File to modify (e
output : str [required] # File to write the results to (e
replace_string : str # String in the input file to substitute with the commit information
)
Argumente
Die Funktion vcs_tag() akzeptiert die folgenden Schlüsselwortargumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
command |
list[exe | external_program | custom_tgt | file | str] |
Der auszuführende Befehl, siehe Dieser Parameter ist optional. Wenn er fehlt, versucht Meson sein Bestes, einen geeigneten Standardbefehl zu finden. (seit 0.62.0) (seit 0.63.0) |
|
fallback |
str |
Versionsnummer, die verwendet werden soll, wenn keine Versionskontrollinformationen vorhanden sind, z. B. beim Erstellen aus einem Release-Tarball. |
|
input |
str |
Datei, die geändert werden soll (z. B. |
|
output |
str |
Datei, in die die Ergebnisse geschrieben werden sollen (z. B. |
|
replace_string |
str |
Zeichenkette in der Eingabedatei, die durch die Commit-Informationen ersetzt werden soll. |
|
warning()
Diese Funktion gibt ihr Argument mit dem Präfix WARNING: auf stdout aus.
Signatur
(seit 0.44.0)
# This function prints its argument to stdout prefixed with WARNING:
void warning(
str | int | bool | list[str | int | bool] | dict[str | int | bool] text, # The message to print
str | int | bool | list[str | int | bool] | dict[str | int | bool] more_text..., # Additional text that will be printed separated by spaces
)
Argumente
Die Argumentabflachung wird von dieser Funktion NICHT UNTERSTÜTZT.
Die Funktion warning() akzeptiert die folgenden positionsgebundenen Argumente
| Name | Typ | Beschreibung | Schlagwörter |
|---|---|---|---|
text |
str | int | bool | list[str | int | bool] | dict[str | int | bool] |
Die auszugebende Nachricht. |
|
Zusätzlich akzeptiert die Funktion zwischen 0 und unendlich variable Argumente (more_text...) vom Typ .str | int | bool | list[str | int | bool] | dict[str | int | bool]
Zusätzlicher Text, der durch Leerzeichen getrennt ausgegeben wird.
(seit 0.54.0)
Die Ergebnisse der Suche sind