Benutzerdefinierte Build-Ziele

Obwohl Meson versucht, so viele Sprachen und Werkzeuge wie möglich zu unterstützen, gibt es keine Möglichkeit, alle Sonderfälle abzudecken. Für diese Fälle erlaubt es Ihnen, benutzerdefinierte Build-Ziele zu definieren. Hier ist, wie man es benutzen würde.

comp = find_program('custom_compiler')

infile = 'source_code.txt'
outfile = 'output.bin'

mytarget = custom_target('targetname',
  output : outfile,
  input : infile,
  command : [comp, '@INPUT@', '@OUTPUT@'],
  install : true,
  install_dir : 'subdir')

Dies würde die Binärdatei output.bin generieren und sie nach ${prefix}/subdir/output.bin installieren. Die Variablensubstitution funktioniert genauso wie bei der Quellcode-Generierung.

Weitere Informationen zu diesem Thema finden Sie unter Quellcode-Generierung.

Details zur Befehlsausführung

Meson erlaubt Ihnen nur, einen einzigen Befehl zur Ausführung anzugeben. Dies ist beabsichtigt, da das Schreiben von Shell-Pipelines in Build-Definitionsdateien zu schwer zu wartendem Code führt. Wenn Ihr Befehl mehrere Schritte erfordert, müssen Sie ein Wrapper-Skript schreiben, das alle notwendigen Arbeiten erledigt.

Dabei müssen Sie die folgenden Punkte beachten:

  • Gehen Sie nicht davon aus, dass der Befehl in einem bestimmten Verzeichnis aufgerufen wird.
  • Eine Datei outfile eines Ziels namens target, das im Unterverzeichnis subdir definiert ist, muss nach build_dir/subdir/foo.dat geschrieben werden.
  • Wenn Sie ein Unterverzeichnis für temporäre Dateien benötigen, verwenden Sie build_dir/subdir/target.dir.

Die Ergebnisse der Suche sind