diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/markdown/Cross-compilation.md | 26 | ||||
-rw-r--r-- | docs/markdown/Dependencies.md | 29 | ||||
-rw-r--r-- | docs/markdown/Reference-manual.md | 2 | ||||
-rw-r--r-- | docs/markdown/snippets/system-wide-cross-files.md | 20 |
4 files changed, 77 insertions, 0 deletions
diff --git a/docs/markdown/Cross-compilation.md b/docs/markdown/Cross-compilation.md index f68b1f5..c1ad317 100644 --- a/docs/markdown/Cross-compilation.md +++ b/docs/markdown/Cross-compilation.md @@ -257,3 +257,29 @@ then you can access that using the `meson` object like this: myvar = meson.get_cross_property('somekey') # myvar now has the value 'somevalue' ``` + +## Cross file locations + +As of version 0.44.0 meson supports loading cross files from system locations +on Linux and the BSDs. This will be $XDG_DATA_DIRS/meson/cross, or if +XDG_DATA_DIRS is undefined, then /usr/local/share/meson/cross and +/usr/share/meson/cross will be tried in that order, for system wide cross +files. User local files can be put in $XDG_DATA_HOME/meson/cross, or +~/.local/share/meson/cross if that is undefined. + +The order of locations tried is as follows: + - A file relative to the local dir + - The user local location + - The system wide locations in order + +Linux and BSD distributions are encouraged to ship cross files either with +their cross compiler toolchain packages or as a standalone package, and put +them in one of the system paths referenced above. + +These files can be loaded automatically without adding a path to the cross +file. For example, if a ~/.local/share/meson/cross contains a file called x86-linux, +then the following command would start a cross build using that cross files: + +```sh +meson builddir/ --cross-file x86-linux +``` diff --git a/docs/markdown/Dependencies.md b/docs/markdown/Dependencies.md index dbd21aa..bae3edc 100644 --- a/docs/markdown/Dependencies.md +++ b/docs/markdown/Dependencies.md @@ -197,3 +197,32 @@ tools support. You can force one or another via the method keyword: ```meson wmf_dep = dependency('wmf', method : 'config-tool') ``` + +## LLVM + +Meson has native support for LLVM going back to version LLVM version 3.5. +It supports a few additional features compared to other config-tool based +dependencies. + +As of 0.44.0 Meson supports the `static` keyword argument for LLVM. Before this +LLVM >= 3.9 would always dynamically link, while older versions would +statically link, due to a quirk in `llvm-config`. + +### Modules, a.k.a. Components + +Meson wraps LLVM's concept of components in it's own modules concept. +When you need specific components you add them as modules as meson will do the +right thing: + +```meson +llvm_dep = dependency('llvm', version : '>= 4.0', modules : ['amdgpu']) +``` + +As of 0.44.0 it can also take optional modules (these will affect the arguments +generated for a static link): + +```meson +llvm_dep = dependency( + 'llvm', version : '>= 4.0', modules : ['amdgpu'], optional_modules : ['inteljitevents'], +) +``` diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md index 424ab58..e6aa9d3 100644 --- a/docs/markdown/Reference-manual.md +++ b/docs/markdown/Reference-manual.md @@ -855,6 +855,8 @@ This function prints its argument to stdout. This function prints its argument to stdout prefixed with WARNING:. +*Added 0.44.0* + ### project() ``` meson diff --git a/docs/markdown/snippets/system-wide-cross-files.md b/docs/markdown/snippets/system-wide-cross-files.md new file mode 100644 index 0000000..66c454f --- /dev/null +++ b/docs/markdown/snippets/system-wide-cross-files.md @@ -0,0 +1,20 @@ +## System wide and user local cross files + +Meson has gained the ability to load cross files from predefined locations +without passing a full path on Linux and the BSD OSes. User local files will be +loaded from `$XDG_DATA_HOME/meson/cross`, or if XDG_DATA_HOME is undefined, +`~/.local/share/meson/cross` will be used. + +For system wide paths the values of `$XDG_DATA_DIRS` + `/meson/cross` will be used, +if XDG_DATA_DIRS is undefined then `/usr/local/share/meson/cross:/usr/share/meson/cross` +will be used instead. + +A file relative to the current working directory will be tried first, then the +user specific path will be tried before the system wide paths. + +Assuming that a file x86-linux is located in one of those places a cross build +can be started with: + +```sh +meson builddir/ --cross-file x86-linux +``` |