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.

ValueCompiler familyArgument syntax
gccThe GNU Compiler Collectiongcc
clangThe Clang compilergcc
msvcMicrosoft Visual Studiomsvc
intelIntel compilermsvc on windows, otherwise gcc
llvmLLVM-based compiler (Swift, D)
monoXamarin C# compiler
dmdD lang reference compiler
rustcRust compiler
valacVala compiler
pathscaleThe Pathscale Fortran compiler
pgiThe Portland Fortran compiler
sunSun Fortran compiler
g95The G95 Fortran compiler
open64The Open64 Fortran Compiler
nagforThe NAG Fortran compiler
lccElbrus C/C++/Fortran Compiler
armARM compiler
armclangARMCLANG compiler

Script environment variables

ValueComment
MESON_SOURCE_ROOTAbsolute path to the source dir
MESON_BUILD_ROOTAbsolute path to the build dir
MESONINTROSPECTCommand 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_SUBDIRCurrent subdirectory, only set for run_command
MESON_DIST_ROOTPoints 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.

ValueComment
x8632 bit x86 processor
x86_6464 bit x86 processor
ia64Itanium processor
arm32 bit ARM processor
arc32 bit ARC processor
aarch6464 bit ARM processor
mips32 bit MIPS processor
mips6464 bit MIPS processor
ppc32 bit PPC processors
ppc6464 bit PPC processors
e2kMCST Elbrus processor
pariscHP PA-RISC processor
riscv3232 bit RISC-V Open ISA
riscv6464 bit RISC-V Open ISA
sparc32 bit SPARC
sparc64SPARC v9 processor
s390xIBM zSystem s390x

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.

ValueComment
linux
darwinEither OSX or iOS
windowsAny version of Windows
cygwinThe Cygwin environment for Windows
haiku
freebsdFreeBSD and its derivatives
dragonflyDragonFly BSD
netbsd
gnuGNU 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.

LanguageParameter name
Cc_args
C++cpp_args
C#cs_args
Dd_args
Fortranfortran_args
Javajava_args
Objective Cobjc_args
Objective C++objcpp_args
Rustrust_args
Valavala_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