| name: executable | |
| returns: exe | |
| description: | | |
| Creates a new executable. The first argument specifies its name and | |
| the remaining positional arguments define the input files to use. | |
| The arrays for the kwargs (such as `sources`, `objects`, and `dependencies`) are | |
| always flattened, which means you can freely nest and add arrays while | |
| creating the final array. | |
| The returned object also has methods that are documented in [[@exe]]. | |
| *Since 1.3.0* executable names can be the same across multiple targets as | |
| long as they each have a different `name_suffix`. | |
| warnings: | |
| - The `link_language` kwarg was broken until 0.55.0 | |
| posargs_inherit: _build_target_base | |
| varargs_inherit: _build_target_base | |
| kwargs_inherit: _build_target_base | |
| kwargs: | |
| android_exe_type: | |
| type: str | |
| default: "'executable'" | |
| since: 1.8.0 | |
| description: | | |
| Specifies the intended target of the executable. This can either be | |
| `executable`, if the intended usecase is to run the executable using | |
| fork + exec, or `application` if the executable is supposed to be | |
| loaded as shared object by the android runtime. | |
| export_dynamic: | |
| type: bool | |
| since: 0.45.0 | |
| description: | | |
| when set to true causes the target's symbols to be | |
| dynamically exported, allowing modules built using the | |
| [[shared_module]] function to refer to functions, | |
| variables and other symbols defined in the executable itself. | |
| implib: | |
| type: bool | str | |
| since: 0.42.0 | |
| description: | | |
| When set to a string, that will be the name of a generated import library. | |
| *Since 1.10.0* passing a boolean value is deprecated. | |
| 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). Implies | |
| the `export_dynamic` argument. | |
| pie: | |
| type: bool | |
| since: 0.49.0 | |
| description: Build a position-independent executable. | |
| vs_module_defs: | |
| type: str | file | custom_tgt | custom_idx | |
| since: 1.3.0 | |
| description: | | |
| Specify a Microsoft module definition file for controlling symbol exports, | |
| etc., on platforms where that is possible (e.g. Windows). | |
| This can be used to expose which functions a shared_module loaded by an | |
| executable will be allowed to use. |