Reference tables

Compiler ids

These are return values of the get_id (Compiler family) and get_argument_syntax (Argument syntax) method in a compiler object.

Value Compiler family Argument syntax
gcc The GNU Compiler Collection gcc
clang The Clang compiler gcc
msvc Microsoft Visual Studio msvc
intel Intel compiler msvc on windows, otherwise gcc
llvm LLVM-based compiler (Swift, D)
mono Xamarin C# compiler
dmd D lang reference compiler
rustc Rust compiler
valac Vala compiler
pathscale The Pathscale Fortran compiler
pgi The Portland Fortran compiler
sun Sun Fortran compiler
g95 The G95 Fortran compiler
open64 The Open64 Fortran Compiler
nagfor The NAG Fortran compiler
lcc Elbrus C/C++/Fortran Compiler
arm ARM compiler
armclang ARMCLANG compiler
ccrx Renesas RX Family C/C++ compiler

Script environment variables

Value Comment
MESON_SOURCE_ROOT Absolute path to the source dir
MESON_BUILD_ROOT Absolute path to the build dir
MESONINTROSPECT Command to run to run the introspection command, may be of the form python /path/to/meson introspect, user is responsible for splitting the path if necessary.
MESON_SUBDIR Current subdirectory, only set for run_command
MESON_DIST_ROOT Points to the root of the staging directory, only set when running dist scripts

CPU families

These are returned by the cpu_family method of build_machine, host_machine and target_machine. For cross compilation they are set in the cross file.

Value Comment
x86 32 bit x86 processor
x86_64 64 bit x86 processor
ia64 Itanium processor
arm 32 bit ARM processor
arc 32 bit ARC processor
aarch64 64 bit ARM processor
mips 32 bit MIPS processor
mips64 64 bit MIPS processor
ppc 32 bit PPC processors
ppc64 64 bit PPC processors
e2k MCST Elbrus processor
parisc HP PA-RISC processor
riscv32 32 bit RISC-V Open ISA
riscv64 64 bit RISC-V Open ISA
sparc 32 bit SPARC
sparc64 SPARC v9 processor
s390x IBM zSystem s390x
rx Renesas RX 32 bit MCU

Any cpu family not listed in the above list is not guaranteed to remain stable in future releases.

Those porting from autotools should note that meson does not add endianness to the name of the cpu_family. For example, autotools will call little endian PPC64 "ppc64le", meson will not, you must also check the .endian() value of the machine for this information.

Operating system names

These are provided by the .system() method call.

Value Comment
linux
darwin Either OSX or iOS
windows Any version of Windows
cygwin The Cygwin environment for Windows
haiku
freebsd FreeBSD and its derivatives
dragonfly DragonFly BSD
netbsd
gnu GNU Hurd

Any string not listed above is not guaranteed to remain stable in future releases.

Language arguments parameter names

These are the parameter names for passing language specific arguments to your build target.

Language Parameter name
C c_args
C++ cpp_args
C# cs_args
D d_args
Fortran fortran_args
Java java_args
Objective C objc_args
Objective C++ objcpp_args
Rust rust_args
Vala vala_args

Function Attributes

These are the parameters names that are supported using compiler.has_function_attribute() or compiler.get_supported_function_attributes()

GCC __attribute__

These values are supported using the GCC style __attribute__ annotations, which are supported by GCC, Clang, and other compilers.

Name
alias
aligned
alloc_size
always_inline
artificial
cold
const
constructor
constructor_priority
deprecated
destructor
error
externally_visible
fallthrough
flatten
format
format_arg
gnu_inline
hot
ifunc
malloc
noclone
noinline
nonnull
noreturn
nothrow
optimize
packed
pure
returns_nonnull
unused
used
visibility
warning
warn_unused_result
weak
weakreaf

MSVC __declspec

These values are supported using the MSVC style __declspec annotation, which are supported by MSVC, GCC, Clang, and other compilers.

Name
dllexport
dllimport

The results of the search are