name: get_option
returns: str | int | bool | feature | array[str | int | bool]
description: |
  Obtains the value of the [project build option](Build-options.md)
  specified in the positional argument.

  Note that the value returned for built-in options that end in `dir`
  such as `bindir` and `libdir` is usually a path relative to (and
  inside) the `prefix` but you should not rely on that, as it can also
  be an absolute path [in some cases](Builtin-options.md#universal-options).
  [`install_dir` arguments](Installing.md) handle that as expected
  but if you need an absolute path, e.g. to use in a define etc.,
  you should use the path concatenation operator like this:
  `get_option('prefix') / get_option('localstatedir')`.
  Never manually join paths as if they were strings.

  For options of type `feature` a
  [[@feature]] option object
  is returned instead of a string.
  See [`feature` options](Build-options.md#features)
  documentation for more details.

  For options that are [specified
  per-machine](Builtin-options.md#specifying-options-per-machine)
  `get_option()` retrieves the value of the option for the
  build machine if the argument starts with `build.`.

posargs:
  option_name:
    type: str
    description: Name of the option to query
