Most packages export one or more header files defining their public interface. For example the C library exports header files such as stdio.h and ctype.h. If the package follows the directory layout conventions then the exported header files will normally be found in the package's include sub-directory. For packages which do not follow these conventions, typically simple ones for which a complicated sub-directory hierarchy is undesirable, there has to be an alternative way of specifying which header file or files define the public interface. The include_files property provides support for this.
By default, if a package does not have an include subdirectory and it does not have an include_files property then all files with a suffix of .h, .hxx, .inl or .inc will be treated as public header files. However some of these may be private files containing implementation details. If there is an include_files property then only the files listed in that property will be exported.
If a package should not export any header files but does contain private implementation headers, an include_files property with no arguments should be used.