The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
6.7 KiB

# 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 | |
| clang-cl | The Clang compiler (MSVC compatible driver) | msvc |
## 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 |