---
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 a 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.
