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

Script environment variables

Value Comment
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_BUILD_ROOT Absolute path to the build dir
MESON_DIST_ROOT Points to the root of the staging directory, only set when running dist scripts
MESON_SOURCE_ROOT Absolute path to the source dir
MESON_SUBDIR Current subdirectory, only set for run_command

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

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
cygwin The Cygwin environment for Windows
darwin Either OSX or iOS
dragonfly DragonFly BSD
freebsd FreeBSD and its derivatives
gnu GNU Hurd
haiku
linux
netbsd
windows Any version of Windows

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

Compiler and linker flag environment variables

These environment variables will be used to modify the compiler and linker flags.

| CFLAGS | Flags for the C compiler | | CXXFLAGS | Flags for the C++ compiler | | OBJCFLAGS | Flags for the Objective C compiler | | FFLAGS | Flags for the Fortran compiler | | DFLAGS | Flags for the D compiler | | VALAFLAGS | Flags for the Vala compiler | | RUSTFLAGS | Flags for the Rust compiler | | LDFLAGS | The linker flags, used for all languages |

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