| # 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| |
| | rl78 | Renesas RL78 | |
| | 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. |
| |
| | Name | Comment | |
| | ----- | ------- | |
| | 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 | |