|  | name: summary | 
|  | returns: void | 
|  | since: 0.53.0 | 
|  | description: | | 
|  | This function is used to summarize build configuration at the end of the build | 
|  | process. This function provides a way for projects (and subprojects) to report | 
|  | this information in a clear way. | 
|  |  | 
|  | The content is a series of key/value pairs grouped into sections. If | 
|  | the section keyword argument is omitted, those key/value pairs are | 
|  | implicitly grouped into a section with no title. key/value pairs can | 
|  | optionally be grouped into a dictionary, but keep in mind that | 
|  | dictionaries do not guarantee ordering. `key` must be string, | 
|  | `value` can be: | 
|  |  | 
|  | - an integer, boolean or string | 
|  | - *since 0.57.0* an external program or a dependency | 
|  | - *since 0.58.0* a feature option | 
|  | - a list of those. | 
|  |  | 
|  | Instead of calling summary as `summary(key, value)`, it is also possible to | 
|  | directly pass a dictionary to the [[summary]] function, as seen in the example | 
|  | below. | 
|  |  | 
|  | `summary()` can be called multiple times as long as the same | 
|  | section/key pair doesn't appear twice. All sections will be collected | 
|  | and printed at the end of the configuration in the same order as they | 
|  | have been called. | 
|  |  | 
|  | example: | | 
|  | Example `meson.build`: | 
|  | ```meson | 
|  | project('My Project', version : '1.0') | 
|  | summary({'bindir': get_option('bindir'), | 
|  | 'libdir': get_option('libdir'), | 
|  | 'datadir': get_option('datadir'), | 
|  | }, section: 'Directories') | 
|  | summary({'Some boolean': false, | 
|  | 'Another boolean': true, | 
|  | 'Some string': 'Hello World', | 
|  | 'A list': ['string', 1, true], | 
|  | }, section: 'Configuration') | 
|  | ``` | 
|  |  | 
|  | Output: | 
|  | ``` | 
|  | My Project 1.0 | 
|  |  | 
|  | Directories | 
|  | prefix         : /opt/gnome | 
|  | bindir         : bin | 
|  | libdir         : lib/x86_64-linux-gnu | 
|  | datadir        : share | 
|  |  | 
|  | Configuration | 
|  | Some boolean   : False | 
|  | Another boolean: True | 
|  | Some string    : Hello World | 
|  | A list         : string | 
|  | 1 | 
|  | True | 
|  | ``` | 
|  |  | 
|  | arg_flattening: false | 
|  |  | 
|  | posargs: | 
|  | key_or_dict: | 
|  | type: str | dict[str | bool | int | dep | external_program | list[str | bool | int | dep | external_program]] | 
|  | description: | | 
|  | The name of the new entry, or a dict containing multiple entries.  If a | 
|  | dict is passed it is equivalent to calling summary() once for each | 
|  | key-value pair.  Keep in mind that dictionaries do not guarantee | 
|  | ordering. | 
|  |  | 
|  | optargs: | 
|  | value: | 
|  | type: str | bool | int | dep | external_program | list[str | bool | int | dep | external_program] | 
|  | description: | | 
|  | The value to print for the `key`.  Only valid if `key_or_dict` is a str. | 
|  |  | 
|  | kwargs: | 
|  | bool_yn: | 
|  | type: bool | 
|  | default: false | 
|  | description: Convert bool values to yes and no | 
|  | section: | 
|  | type: str | 
|  | description: The section to put this summary information under.  If the | 
|  | section keyword argument is omitted, key/value pairs are implicitly | 
|  | grouped into a section with no title. | 
|  | list_sep: | 
|  | type: str | 
|  | since: 0.54.0 | 
|  | description: | | 
|  | The separator to use when printing list values in this summary.  If no | 
|  | separator is given, each list item will be printed on its own line. |