aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Dependencies.md15
-rw-r--r--docs/markdown/Reference-manual.md12
-rw-r--r--docs/markdown/Release-notes-for-0.42.0.md39
3 files changed, 64 insertions, 2 deletions
diff --git a/docs/markdown/Dependencies.md b/docs/markdown/Dependencies.md
index 1851233..401e019 100644
--- a/docs/markdown/Dependencies.md
+++ b/docs/markdown/Dependencies.md
@@ -51,6 +51,21 @@ If your boost headers or libraries are in non-standard locations you can set the
GTest and GMock come as sources that must be compiled as part of your project. With Meson you don't have to care about the details, just pass `gtest` or `gmock` to `dependency` and it will do everything for you. If you want to use GMock, it is recommended to use GTest as well, as getting it to work standalone is tricky.
+## MPI ##
+
+MPI is supported for C, C++ and Fortran. Because dependencies are
+language-specific, you must specify the requested language using the
+`language` keyword argument, i.e.,
+ * `dependency('mpi', language='c')` for the C MPI headers and libraries
+ * `dependency('mpi', language='cpp')` for the C++ MPI headers and libraries
+ * `dependency('mpi', language='fortran')` for the Fortran MPI headers and libraries
+
+Meson prefers pkg-config for MPI, but if your MPI implementation does not
+provide them, it will search for the standard wrapper executables, `mpic`,
+`mpicxx`, `mpic++`, `mpifort`, `mpif90`, `mpif77`. If these are not in your
+path, they can be specified by setting the standard environment variables
+`MPICC`, `MPICXX`, `MPIFC`, `MPIF90`, or `MPIF77`, during configuration.
+
## Qt5 ##
Meson has native Qt5 support. Its usage is best demonstrated with an example.
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 1a98c4c..84b2fb1 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -193,6 +193,7 @@ Finds an external dependency with the given name with `pkg-config` if possible a
- `fallback` specifies a subproject fallback to use in case the dependency is not found in the system. The value is an array `['subproj_name', 'subproj_dep']` where the first value is the name of the subproject and the second is the variable name in that subproject that contains the value of [`declare_dependency`](#declare_dependency).
- `default_options` *(added 0.37.0)* an array of option values that override those set in the project's `default_options` invocation (like `default_options` in [`project()`](#project), they only have effect when Meson is run for the first time, and command line arguments override any default options in build files)
- `method` defines the way the dependency is detected, the default is `auto` but can be overridden to be e.g. `qmake` for Qt development, and different dependencies support different values for this (though `auto` will work on all of them)
+- `language` *(added 0.42.0)* defines what language-specific dependency to find if it's available for multiple languages.
The returned object also has methods that are documented in the [object methods section](#dependency-object) below.
@@ -250,6 +251,7 @@ Executable supports the following keyword arguments. Note that just like the pos
- `build_by_default` causes, when set to true, to have this target be built by default, that is, when invoking plain `ninja`, the default value is true for all built target types, since 0.38.0
- `override_options` takes an array of strings in the same format as `project`'s `default_options` overriding the values of these options for this target only, since 0.40.0
- `implib` when set to true, an import library is generated for the executable (the name of the import library is based on *exe_name*). Alternatively, when set to a string, that gives the base name for the import library. The import library is used when the returned build target object appears in `link_with:` elsewhere. Only has any effect on platforms where that is meaningful (e.g. Windows). Since 0.42.0
+- `implicit_include_directories` is a boolean telling whether Meson adds the current source and build directories to the include path, defaults to `true`, since 0.42.0
The list of `sources`, `objects`, and `dependencies` is always flattened, which means you can freely nest and add lists while creating the final list. As a corollary, the best way to handle a 'disabled dependency' is by assigning an empty list `[]` to it and passing it like any other dependency to the `dependencies:` keyword argument.
@@ -473,11 +475,19 @@ Installs the specified man files from the source tree into system's man director
### install_subdir()
``` meson
- void install_subdir(subdir_name)
+ void install_subdir(subdir_name, install_dir : ..., exclude_files : ..., exclude_directories : ...)
```
Installs the entire given subdirectory and its contents from the source tree to the location specified by the keyword argument `install_dir`. Note that due to implementation issues this command deletes the entire target dir before copying the files, so you should never use `install_subdir` to install into two overlapping directories (such as `foo` and `foo/bar`) because if you do the behavior is undefined.
+The following keyword arguments are supported:
+
+- `install_dir`: the location to place the installed subdirectory.
+- `exclude_files`: a list of file names that should not be installed.
+ Names are interpreted as paths relative to the `subdir_name` location.
+- `exclude_directories`: a list of directory names that should not be installed.
+ Names are interpreted as paths relative to the `subdir_name` location.
+
### is_variable()
``` meson
diff --git a/docs/markdown/Release-notes-for-0.42.0.md b/docs/markdown/Release-notes-for-0.42.0.md
index 78a5917..5472341 100644
--- a/docs/markdown/Release-notes-for-0.42.0.md
+++ b/docs/markdown/Release-notes-for-0.42.0.md
@@ -83,10 +83,47 @@ flag manually, e.g. via `link_args` to a target. This is not
recommended because having multiple rpath causes them to stomp on each
other. This warning will become a hard error in some future release.
+## Vulkan dependency module
+
+Vulkan can now be used as native dependency. The dependency module
+will detect the VULKAN_SDK environment variable or otherwise try to
+receive the vulkan library and header via pkgconfig or from the
+system.
+
+## Limiting the maximum number of linker processes
+
+With the Ninja backend it is now possible to limit the maximum number of
+concurrent linker processes. This is usually only needed for projects
+that have many large link steps that cause the system to run out of
+memory if they are run in parallel. This limit can be set with the
+new `backend_max_links` option.
+
+## Disable implicit include directories
+
+By default Meson adds the current source and build directories to the
+header search path. On some rare occasions this is not desired. Setting
+the `implicit_include_directories` keyword argument to `false` these
+directories are not used.
+
+## Support for MPI dependency
+
+MPI is now supported as a dependency. Because dependencies are
+language-specific, you must specify the requested language with the
+`language` keyword, i.e., `dependency('mpi', language='c')` will
+request the C MPI headers and libraries. See [the MPI
+dependency](Dependencies.md#mpi) for more information.
+
+## Allow excluding files or directories from `install_subdir`
+
+The [`install_subdir`](Reference-manual.md#install_subdir) command
+accepts the new `exclude_files` and `exclude_directories` keyword
+arguments that allow specified files or directories to be excluded
+from the installed subdirectory.
+
## Make all Meson functionality invokable via the main executable
Previously Meson had multiple executables such as `mesonintrospect`
-and `mesontest`. Thes are now invokable via the main Meson executable
+and `mesontest`. They are now invokable via the main Meson executable
like this:
meson configure <arguments> # equivalent to mesonconf <options>