meson.add_install_script: Move notes section up [skip ci]

The notes section of add_install_script somehow got separated, which
meant that no one reads it anymore.

Also rephrase it a bit to clarify that scripts *MUST* handle DESTDIR
correctly to mirror what Meson does, and how.
pull/3843/merge
Nirbheek Chauhan 7 years ago committed by Nirbheek Chauhan
parent b387ab1ee1
commit 8e84b13850
  1. 42
      docs/markdown/Reference-manual.md

@ -1398,6 +1398,28 @@ the following methods.
`MESON_INSTALL_DESTDIR_PREFIX`, and `MESONINTROSPECT` set. All
additional arguments are passed as parameters.
Meson uses the `DESTDIR` environment variable as set by the
inherited environment to determine the (temporary) installation
location for files. Your install script must be aware of this while
manipulating and installing files. The correct way to handle this is
with the `MESON_INSTALL_DESTDIR_PREFIX` variable which is always set
and contains `DESTDIR` (if set) and `prefix` joined together. This
is useful because both are usually absolute paths and there are
platform-specific edge-cases in joining two absolute paths.
In case it is needed, `MESON_INSTALL_PREFIX` is also always set and
has the value of the `prefix` option passed to Meson.
`MESONINTROSPECT` contains the path to the introspect command that
corresponds to the `meson` executable that was used to configure the
build. (This might be a different path then the first executable
found in `PATH`.) It can be used to query build configuration. Note
that the value will contain many parts, f.ex., it may be `python3
/path/to/meson.py introspect`. The user is responsible for splitting
the string to an array if needed by splitting lexically like a UNIX
shell would. If your script uses Python, `shlex.split()` is the
easiest correct way to do this.
- `add_postconf_script(script_name, arg1, arg2, ...)` will run the
executable given as an argument after all project files have been
generated. This script will have the environment variables
@ -1461,26 +1483,6 @@ the following methods.
build](Unity-builds.md) (multiple sources are combined before
compilation to reduce build time) and `false` otherwise.
To determine the installation location, the script should use the
`DESTDIR`, `MESON_INSTALL_PREFIX`, `MESON_INSTALL_DESTDIR_PREFIX`
variables. `DESTDIR` will be set only if it is inherited from the
outside environment. `MESON_INSTALL_PREFIX` is always set and has
the value of the `prefix` option passed to
Meson. `MESON_INSTALL_DESTDIR_PREFIX` is always set and contains
`DESTDIR` and `prefix` joined together. This is useful because both
are absolute paths, and many path-joining functions such as
[`os.path.join` in
Python](https://docs.python.org/3/library/os.path.html#os.path.join)
special-case absolute paths.
`MESONINTROSPECT` contains the path to the introspect command that
corresponds to the `meson` executable that was used to configure the
build. (This might be a different path then the first executable
found in `PATH`.) It can be used to query build configuration. Note
that the value may contain many parts, i.e. it may be `python3
/path/to/meson.py introspect`. The user is responsible for splitting
the string to an array if needed.
- `override_find_program(progname, program)` [*(Added
0.46.0)*](Release-notes-for-0-46-0.html#can-override-find_program)
specifies that whenever `find_program` is used to find a program

Loading…
Cancel
Save