参照テーブル
コンパイラID
これらは、コンパイラオブジェクトの `get_id`(コンパイラファミリ)メソッドと `get_argument_syntax`(引数構文)メソッドの戻り値です。
値 | コンパイラファミリ | 引数構文 |
---|---|---|
arm | ARMコンパイラ | |
armclang | ARMCLANGコンパイラ | |
ccomp | CompCert正式検証済みCコンパイラ | |
ccrx | ルネサスRXファミリC/C++コンパイラ | |
clang | Clangコンパイラ | gcc |
clang-cl | Clangコンパイラ (MSVC互換ドライバ) | msvc |
dmd | D言語リファレンスコンパイラ | |
emscripten | Emscripten WASMコンパイラ | |
flang | Classic Flang Fortranコンパイラ | |
g95 | G95 Fortranコンパイラ | |
gcc | GNUコンパイラコレクション | gcc |
intel | Intelコンパイラ (LinuxおよびMac) | gcc |
intel-cl | Intelコンパイラ (Windows) | msvc |
intel-llvm | Intel oneAPI LLVMベースのコンパイラ | |
intel-llvm-cl | Intel oneAPI LLVMベースのコンパイラ (Windows) | msvc |
lcc | Elbrus C/C++/Fortranコンパイラ | |
llvm | LLVMベースのコンパイラ (Swift、D) | |
llvm-flang | Flang Fortranコンパイラ (LLVMベース) | |
mono | Xamarin C#コンパイラ | |
mwccarm | Metrowerks C/C++コンパイラ for Embedded ARM | |
mwcceppc | Metrowerks C/C++コンパイラ for Embedded PowerPC | |
msvc | Microsoft Visual Studio | msvc |
nagfor | NAG Fortranコンパイラ | |
nvidia_hpc | NVidia HPC SDKコンパイラ | |
nvcc | NVidia CUDAコンパイラ | |
open64 | Open64 Fortranコンパイラ | |
pathscale | Pathscale Fortranコンパイラ | |
pgi | Portland PGI C/C++/Fortranコンパイラ | |
rustc | Rustコンパイラ | |
sun | Sun Fortranコンパイラ | |
c2000 | Texas Instruments C/C++コンパイラ (C2000) | |
c6000 | Texas Instruments C/C++コンパイラ (C6000) | |
ti | Texas Instruments C/C++コンパイラ | |
valac | Valaコンパイラ | |
xc16 | Microchip XC16 Cコンパイラ | |
cython | Cythonコンパイラ | |
nasm | NASMコンパイラ (0.64.0以降) | |
yasm | YASMコンパイラ (0.64.0以降) | |
ml | Microsoft Macro Assembler for x86 and x86_64 (0.64.0以降) | msvc |
armasm | Microsoft Macro Assembler for ARM and AARCH64 (0.64.0以降) | |
mwasmarm | Metrowerks Assembler for Embedded ARM | |
mwasmeppc | Metrowerks Assembler for Embedded PowerPC |
リンカID
これらは、コンパイラオブジェクトの `get_linker_id` メソッドの戻り値です。
値 | リンカファミリ |
---|---|
ld.bfd | GNUリンカ |
ld.gold | GNU goldリンカ |
ld.lld | LLVMリンカ (GNUインターフェース) |
ld.mold | 高速MOLDリンカ |
ld.solaris | Solarisおよびillumos |
ld.wasm | emscriptenのwasm-ldリンカ |
ld.zigcc | Zigリンカ (C/C++フロントエンド; GNUライク) |
ld64 | Apple ld64 |
ld64.lld | LLVMリンカ (ld64インターフェース) |
link | MSVCリンカ |
lld-link | LLVMリンカ (MSVCインターフェース) |
xilink | Intel-clのみで使用、MSVCライク |
optlink | optlink (DMDで使用) |
rlink | ルネサスリンカ、CCrxのみで使用 |
xc16-ar | Microchipリンカ、XC16のみで使用 |
ar2000 | Texas Instrumentsリンカ、C2000のみで使用 |
ti-ar | Texas Instrumentsリンカ |
ar6000 | Texas Instrumentsリンカ、C6000のみで使用 |
armlink | ARMリンカ (armおよびarmclangコンパイラ) |
pgi | Portland/Nvidia PGI |
nvlink | Nvidiaリンカ、cudaで使用 |
ccomp | リンカドライバとして使用されるCompCert |
mwldarm | Metrowerksリンカ (ARMインターフェース)、mwccarmのみで使用 |
mwldeppc | Metrowerksリンカ (PowerPCインターフェース)、mwcceppcのみで使用 |
C#やJavaのように、個別の動的リンカを持たない言語の場合、`get_linker_id`はコンパイラ名を返します。
スクリプト環境変数
値 | コメント |
---|---|
MESONINTROSPECT | イントロスペクションコマンドを実行するためのコマンド。 `python /path/to/meson introspect` の形式である場合があります。パスを分割する必要がある場合は、ユーザーが責任を負います。 |
MESONREWRITE | 書き換えコマンドを実行するためのコマンド。 `dist` スクリプトを実行する場合にのみ設定されます。 |
MESON_BUILD_ROOT | ビルドディレクトリへの絶対パス |
MESON_DIST_ROOT | ステージングディレクトリのルートを指します。 `dist` スクリプトを実行する場合にのみ設定されます。 |
MESON_SOURCE_ROOT | ソースディレクトリへの絶対パス |
MESON_SUBDIR | 現在のサブディレクトリ。 `run_command` の場合にのみ設定されます。 |
CPUファミリ
これらは、`build_machine`、`host_machine`、および`target_machine`の `cpu_family` メソッドによって返されます。クロスコンパイルの場合は、クロスファイルで設定されます。
値 | コメント |
---|---|
aarch64 | 64ビットARMプロセッサ |
alpha | DEC Alphaプロセッサ |
arc | 32ビットARCプロセッサ |
arm | 32ビットARMプロセッサ |
avr | Atmel AVRプロセッサ |
c2000 | 32ビットC2000プロセッサ |
c6000 | 32ビットC6000プロセッサ |
csky | 32ビットCSkyプロセッサ |
dspic | 16ビットMicrochip dsPIC |
e2k | MCST Elbrusプロセッサ |
ft32 | 32ビットBridgetek MCU |
ia64 | Itaniumプロセッサ |
loongarch64 | 64ビットLoongsonプロセッサ |
m68k | Motorola 68000プロセッサ |
microblaze | MicroBlazeプロセッサ |
mips | 32ビットMIPSプロセッサ |
mips64 | 64ビットMIPSプロセッサ |
msp430 | 16ビットMSP430プロセッサ |
parisc | HP PA-RISCプロセッサ |
pic24 | 16ビットMicrochip PIC24 |
ppc | 32ビットPPCプロセッサ |
ppc64 | 64ビットPPCプロセッサ |
riscv32 | 32ビットRISC-V Open ISA |
riscv64 | 64ビットRISC-V Open ISA |
rl78 | ルネサスRL78 |
rx | ルネサスRX 32ビットMCU |
s390 | IBM zSystem s390 |
s390x | IBM zSystem s390x |
sh4 | SuperH SH-4 |
sparc | 32ビットSPARC |
sparc64 | SPARC v9プロセッサ |
sw_64 | 64ビットsunwayプロセッサ |
wasm32 | 32ビットWebAssembly |
wasm64 | 64ビットWebAssembly |
x86 | 32ビットx86プロセッサ |
x86_64 | 64ビットx86プロセッサ |
上記のリストにないCPUファミリは、将来のリリースで安定性が保証されません。
autotoolsからの移植を行う場合は、MesonはCPUファミリの名前にエンディアンを追加しないことに注意してください。たとえば、autotoolsはリトルエンディアンPPC64を「ppc64le」と呼びますが、Mesonは呼びません。この情報については、マシンの`.endian()`値も確認する必要があります。
オペレーティングシステム名
これらは、`.system()`メソッド呼び出しによって提供されます。
値 | コメント |
---|---|
android | 慣例のみ。変更される可能性があります。 |
cygwin | Windows上のCygwinまたはMSYS2環境 |
darwin | OSXまたはiOS |
dragonfly | DragonFly BSD |
emscripten | EmscriptenのJavaScript環境 |
freebsd | FreeBSDとその派生物 |
gnu | GNU Hurd |
haiku | |
linux | |
netbsd | |
openbsd | |
windows | ネイティブWindows (CygwinまたはMSYS2ではない) |
sunos | illumosおよびSolaris |
上記にリストされていない文字列は、将来のリリースで安定性が保証されません。
カーネル名 (1.2.0以降)
`.kernel()`メソッドによって返されるネイティブ名。
値 | コメント |
---|---|
linux | |
freebsd | |
openbsd | |
netbsd | |
gnu | GNU Hurd |
nt | |
xnu | さまざまなApple OSのカーネル |
illumos | コミュニティの努力によってOpenSolarisから派生したカーネル |
solaris | OracleによってOpenSolarisから派生したカーネル |
dragonfly | |
haiku | |
none | たとえば、ベアメタル組み込み向け |
サブシステム名 (1.2.0以降)
対象システムのより具体的な説明。ほとんどの値は、Mesonをネイティブに実行できないため、クロスファイルでのみ使用することを意図しています。
値 | コメント |
---|---|
macos | Apple macOS (旧OSX) |
ios | Apple iOS |
ios-simulator | |
tvos | Apple tvOS |
tvos-simulator | |
watchos | Apple watchOS |
watchos-simulator |
言語引数パラメータ名
ビルドターゲットに言語固有の引数を渡すためのパラメータ名です。
言語 | コンパイラ名 | リンカ名 |
---|---|---|
C | c_args | c_link_args |
C++ | cpp_args | cpp_link_args |
C# | cs_args | cs_link_args |
CUDA | cuda_args | cuda_link_args |
D | d_args | d_link_args |
Fortran | fortran_args | fortran_link_args |
Java | java_args | java_link_args |
Objective C | objc_args | objc_link_args |
Objective C++ | objcpp_args | objcpp_link_args |
Rust | rust_args | rust_link_args |
Vala | vala_args | vala_link_args |
Cython | cython_args | cython_link_args |
NASM | nasm_args | 該当なし |
MASM | masm_args | 該当なし |
これらの `<lang>_*` オプションはすべて、マシンごとに指定されます。クロスビルドでの方法については、マシンごとのオプションの指定を参照してください。
コンパイラとリンカのフラグ環境変数
これらの環境変数は、コンパイラとリンカのフラグを変更するために使用されます。
**これらを使用しない**ことをお勧めします。これらは、他のビルドシステムとの後方互換性のためにのみ提供されています。これらの使用には、特にプロジェクトを再構築する場合に、多くの注意点があります。代わりにコマンドライン引数を使用することを**強く**お勧めします。
名前 | コメント |
---|---|
CFLAGS | Cコンパイラのフラグ |
CXXFLAGS | C++コンパイラのフラグ |
CUFLAGS | CUDAコンパイラのフラグ |
OBJCFLAGS | Objective Cコンパイラーのフラグ |
FFLAGS | Fortranコンパイラーのフラグ |
DFLAGS | Dコンパイラーのフラグ |
VALAFLAGS | Valaコンパイラーのフラグ |
RUSTFLAGS | Rustコンパイラーのフラグ |
CYTHONFLAGS | Cythonコンパイラーのフラグ |
LDFLAGS | リンカーフラグ。すべての言語で使用されます。 |
注:これらの設定はマシンごとに指定されるため、環境変数は実際にはペアで提供されます。詳細は、マシンごとの環境変数セクションを参照してください。
関数属性
compiler.has_function_attribute()
またはcompiler.get_supported_function_attributes()
を使用してサポートされているパラメーター名です。
GCC __attribute__
これらの値は、GCC、Clang、およびその他のコンパイラーでサポートされているGCCスタイルの__attribute__
アノテーションを使用してサポートされています。
名前 |
---|
alias |
aligned |
alloc_size |
always_inline |
artificial |
cold |
const |
constructor |
constructor_priority |
deprecated |
destructor |
error |
externally_visible |
fallthrough |
flatten |
format |
format_arg |
force_align_arg_pointer³ |
gnu_inline |
hot |
ifunc |
malloc |
noclone |
noinline |
nonnull |
noreturn |
nothrow |
null_terminated_string_arg⁷ |
optimize |
packed |
pure |
retain⁴ |
returns_nonnull |
section⁵ |
sentinel⁵ |
unused |
used |
vector_size⁶ |
visibility* |
visibility:default† |
visibility:hidden† |
visibility:internal† |
visibility:protected† |
warning |
warn_unused_result |
weak |
weakref |
* *0.52.0 で変更* "visibility" ターゲットには、Apple の clang に存在しない "protected" が含まれなくなりました。
† *0.52.0 で追加* これらの分割された可視性属性は、より狭いチェックを提供するため、単純な "visibility" よりも推奨されます。
³ *0.55.0 で追加*
⁴ *0.62.0 で追加*
⁵ *0.63.0 で追加*
⁶ *1.1.0 で追加*
⁷ *1.5.0 で追加*
MSVC __declspec
これらの値は、MSVC、GCC、Clang、およびその他のコンパイラーでサポートされている MSVC スタイルの __declspec
アノテーションを使用してサポートされています。
名前 |
---|
dllexport |
dllimport |
依存関係の検索方法
これらは、`dependency` 関数の `method` キーワード引数に渡すことができる値です。
名前 | コメント |
---|---|
auto | 自動メソッド選択 |
pkg-config | Pkg-Config を使用する |
cmake | CMake モジュールとして検索する |
config-tool | `cups-config` などのカスタム依存ツールを使用する |
system | システム提供 (例:OpenGL) |
extraframework | macOS/iOS フレームワーク |
コンパイラとリンカーの選択変数
注:これらの設定はマシンごとに指定されるため、環境変数は実際にはペアで提供されます。詳細は、マシンごとの環境変数セクションを参照してください。
言語 | コンパイラ | リンカー | 注記 |
---|---|---|---|
C | CC | CC_LD | |
C++ | CXX | CXX_LD | |
D | DC | DC_LD | 0.54 より前は D_LD* |
Fortran | FC | FC_LD | 0.54 より前は F_LD* |
Objective-C | OBJC | OBJC_LD | |
Objective-C++ | OBJCXX | OBJCXX_LD | 0.54 より前は OBJCPP_LD* |
Rust | RUSTC | RUSTC_LD | 0.54 より前は RUST_LD* |
Vala | VALAC | CC_LD を使用します。 Vala は C にトランスパイルされます | |
C# | CSC | CSC | リンカーはコンパイラです |
Cython | CYTHON | ||
nasm | NASM | C リンカーを使用します |
*古い環境変数は引き続きサポートされていますが、非推奨となっており、Meson の将来のバージョンで削除される予定です。
*1.3.0 で変更* スペースを含むパスは、Ccache へのパス、`-m32` や `--target` などの組み込みコンパイラフラグなどを抽出するために無条件に分割されました。これは、ハードコードされたコンパイラパスを CMake サブプロジェクトに渡すことを妨げました。これを回避するには、パスを二重引用符で囲む必要があります
export CC='"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe"'
マシンファイルを使用して値を設定することもできます。
*1.3.0 で追加* 既存の実行可能ファイルを指すパスは、ラップする必要がなくなりました
export CC='C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe'
マシンごとの環境変数
*0.54.0* 以降、Autotool やその他のレガシービルドシステムに倣い、マシン固有の設定に影響を与える環境変数はペアで提供されます。すべてのベア環境変数 `FOO` に対して、接尾辞付きの `FOO_FOR_BUILD` があります。`FOO` はホストマシンの構成にのみ影響を与え、`FOO_FOR_BUILD` はビルドマシンの構成にのみ影響を与えます。例えば
-
`PKG_CONFIG_PATH_FOR_BUILD` は、pkg-config が `native: true` の依存関係 (ビルドマシン) のみを検索するパスを制御します。
-
`PKG_CONFIG_PATH` は、pkg-config が `native: false` の依存関係 (ホストマシン) のみを検索するパスを制御します。
これは、(組み込みの) Meson オプションに使用される `build.` プレフィックスを反映しており、同じ意味を持ちます。
これはクロスビルドに役立ちます。ネイティブビルドでは、build = host であり、接尾辞のない環境変数だけで十分です。
*0.54.0* より前には、`_FOR_BUILD` 接尾辞付きの変数はなく、ほとんどの環境変数はネイティブマシンの構成にのみ影響を与えましたが、これは一貫していませんでした (たとえば、`PKG_CONFIG_PATH` はクロスビルドにも影響を与えていました)。
検索結果は次のとおりです。