Argumente hinzufügen

Oft müssen Sie zusätzliche Compiler-Argumente angeben. Meson bietet zwei verschiedene Möglichkeiten, dies zu erreichen: globale Argumente und Argumente pro Ziel.

Globale Argumente

Globale Compiler-Argumente werden mit dem folgenden Befehl gesetzt. Als Beispiel könnten Sie dies tun.

add_global_arguments('-DFOO=bar', language : 'c')

Dies veranlasst Meson, die Definition zu allen C-Kompilierungen hinzuzufügen. Normalerweise würden Sie diese Einstellung für Flags für globale Einstellungen verwenden. Beachten Sie, dass Sie für die Einstellung des C/C++-Sprachstandards (das Argument -std=c99 in GCC) wahrscheinlich eine Standardoption der Funktion project() verwenden möchten. Weitere Einzelheiten finden Sie im Referenzhandbuch.

Globale Argumente haben bestimmte Einschränkungen. Sie müssen alle definiert werden, bevor Build-Ziele angegeben werden. Dies stellt sicher, dass die globalen Flags für jede einzelne Quelldatei, die im gesamten Projekt kompiliert wird, gleich sind, mit einer Ausnahme. Kompilierungstests, die als Teil Ihrer Projektkonfiguration ausgeführt werden, verwenden diese Flags nicht. Der Grund dafür ist, dass Sie möglicherweise einen Testkompilierung mit und ohne ein bestimmtes Flag ausführen müssen, um Ihre Build-Einrichtung zu bestimmen. Aus diesem Grund verwenden Tests diese globalen Argumente nicht.

Sie sollten mit dieser Einstellung nur die wichtigsten Flags setzen, Sie sollten keine Debug- oder Optimierungsflags setzen. Stattdessen sollten sie durch Auswahl eines geeigneten Build-Typs angegeben werden.

Projektargumente

Projektargumente funktionieren ähnlich wie globale Argumente, mit der Ausnahme, dass sie nur innerhalb des aktuellen Unterprojekts gültig sind. Die Verwendung ist einfach

add_project_arguments('-DMYPROJ=projname', language : 'c')

Dies würde die Compiler-Flags zu allen C-Quellen im aktuellen Projekt hinzufügen.

Argumente pro Ziel

Argumente pro Ziel sind ebenso einfach zu definieren.

executable('prog', 'prog.cc', cpp_args : '-DCPPTHING')

Hier erstellen wir eine C++-Executable mit einem zusätzlichen Argument, das während der Kompilierung, aber nicht beim Linken verwendet wird.

Den Parameternamen für andere Sprachen finden Sie in den Referenztabellen.

Das Angeben zusätzlicher Linker-Argumente erfolgt auf die gleiche Weise

executable('prog', 'prog.cc', link_args : '-Wl,--linker-option')

Die Ergebnisse der Suche sind