| --- | |
| short-description: Instructions on handling include directories | |
| ... | |
| # Include directories | |
| Most `C`/`C++` projects have headers in different directories than | |
| sources. Thus you need to specify include directories. Let's assume | |
| that we are at some subdirectory and wish to add its `include` | |
| subdirectory to some target's search path. To create an include | |
| directory object we do this: | |
| ```meson | |
| incdir = include_directories('include') | |
| ``` | |
| The `incdir` variable now holds a reference to the `include` subdir. | |
| Now we pass that as an argument to a build target: | |
| ```meson | |
| executable('someprog', 'someprog.c', include_directories : incdir) | |
| ``` | |
| Note that these two commands can be given in any subdirectories and it | |
| will still work. Meson will keep track of the locations and generate | |
| proper compiler flags to make it all work. | |
| Another thing to note is that `include_directories` adds both the | |
| source directory and corresponding build directory to include path, so | |
| you don't have to care. If it turns out you don't want it after all, this can | |
| be disabled with the `implicit_include_directories` argument to the [build | |
| function](Reference-manual_functions.md) you use. |