| name: include_directories | |
| returns: inc | |
| description: | | |
| Returns an opaque object which contains the directories (relative to the | |
| current directory) given in the positional arguments. The result can then be | |
| passed to the `include_directories:` and `d_import_dirs:` keyword arguments | |
| when building executables or libraries. You can use the returned object in any | |
| subdirectory you want, Meson will make the paths work automatically. | |
| Note that this function call itself does not add the directories into | |
| the search path, since there is no global search path. For something | |
| like that, see [`add_project_arguments()`](#add_project_arguments). | |
| See also `implicit_include_directories` parameter of | |
| [[executable]], which adds current source and build | |
| directories to include path. | |
| Each directory given is converted to two include paths: one that is | |
| relative to the source root and one relative to the build root. | |
| warnings: | |
| - | | |
| When `is_system : true` is used, the include directory order on the | |
| command line is **reversed** compared to the order given in the | |
| arguments: the *last* directory listed has the highest priority | |
| (it appears first among the `-isystem` flags and is searched first | |
| by the compiler). This is the opposite of the default (`is_system : | |
| false`), where the *first* directory listed has the highest priority. | |
| This may be changed in future releases, but behavior will not change | |
| as long as `meson_version` is not changed in `project()`. | |
| example: | | |
| For example, with the following source tree layout in | |
| `/home/user/project.git`: | |
| `meson.build`: | |
| ```meson | |
| project(...) | |
| subdir('include') | |
| subdir('src') | |
| ... | |
| ``` | |
| `include/meson.build`: | |
| ```meson | |
| inc = include_directories('.') | |
| ... | |
| ``` | |
| `src/meson.build`: | |
| ```meson | |
| sources = [...] | |
| executable('some-tool', sources, | |
| include_directories : inc, | |
| ...) | |
| ... | |
| ``` | |
| If the build tree is `/tmp/build-tree`, the following include paths | |
| will be added to the `executable()` call: `-I/tmp/build-tree/include | |
| -I/home/user/project.git/include`. | |
| varargs: | |
| name: includes | |
| type: str | |
| description: Include paths to add. | |
| kwargs: | |
| is_system: | |
| type: bool | |
| default: false | |
| description: | | |
| If set to `true`, flags the specified directories as system directories. | |
| This means that | |
| they will be used with the `-isystem` compiler argument rather than | |
| `-I` on compilers that support this flag (in practice everything | |
| except Visual Studio). |