This directory contains sample input files for the implicit include
directories parser for testing.  For each configuration there is one
".input" file and one ".output" file.

To generate ".input" files for a system, create a temporary build
directory and chdir to it.  Then run cmake pointing to this directory.
The CMakeLists.txt file here will generate ".input" files in your
build directory.  The default set of languages is C and CXX.  This
can be changed with -DLANGUAGES=language_list.  For example:
-DLANGUAGES=Fortran will generate Fortran parser input.

The ".output" files should be generated by hand from the input files.
The test will compare the parser output to the manually generated
".output" file.  The two should match.

For compilers that support "-nostdinc"-like flags, you can generate
a test for this with a command like:
cmake -DUNAME=netbsd_nostdinc \
  -DCMAKE_C_FLAGS=-nostdinc -DCMAKE_CXX_FLAGS=-nostdinc .

Here is an example for testing the XL compiler with both -I and nostdinc:

env CC=xlc CXX=xlC cmake -DUNAME=linux_nostdinc_i \
  -DCMAKE_C_FLAGS='-qnostdinc -I/tmp/ii/test_c' \
  -DCMAKE_CXX_FLAGS='-qnostdinc -I/tmp/ii/test_c -I/tmp/ii/test_cxx' .
