name: add_languages
returns: bool
description: |
  Add programming languages used by the project.

  This is equivalent to having
  them in the `project` declaration. This function is usually used to
  add languages that are only used under some conditions.

  Returns `true` if all languages specified were found and `false` otherwise.

  If `native` is omitted, the languages may be used for either build or host
  machine, but are never required for the build machine.  (i.e. it is equivalent
  to `add_languages(*langs*, native: false, required: *required*) and
  add_languages(*langs*, native: true, required: false)`. This default behaviour
  may change to `native: false` in a future Meson version.

example: |
  ```meson
  project('foobar', 'c')

  if compiling_for_osx
    add_languages('objc')
  endif
  if add_languages('cpp', required : false)
    executable('cpp-app', 'main.cpp')
  endif

  # More code...
  ```

varargs:
  type: str
  name: Language
  description: The languages to add

kwargs:
  required:
    type: bool
    default: true
    description: |
      If set to `true`, Meson will halt if any of the languages
      specified are not found. *(since 0.47.0)* The value of a
      [`feature`](Build-options.md#features) option can also be passed.
  native:
    type: bool
    since: 0.54.0
    description: |
      If set to `true`, the language will be used to compile for the build
      machine, if `false`, for the host machine.

