Provides a macro to check if a list of one or more header files can be included together.

CHECK_INCLUDE_FILES("<includes>" <variable> [LANGUAGE <language>])

Check if the given <includes> list may be included together in a source file and store the result in an internal cache entry named <variable>. Specify the <includes> argument as a ;-list of header file names.

If LANGUAGE is set, the specified compiler will be used to perform the check. Acceptable values are C and CXX. If not set, the C compiler will be used if enabled. If the C compiler is not enabled, the C++ compiler will be used if enabled.

The following variables may be set before calling this macro to modify the way the check is run:


String of additional flags to pass to the compiler. The string must be space-delimited--a ;-list will not work. The contents of CMAKE_<LANG>_FLAGS and its associated configuration-specific variable are automatically added to the compiler command before the contents of CMAKE_REQUIRED_FLAGS.


A ;-list of compiler definitions of the form -DFOO or -DFOO=bar. A definition for the name specified by <resultVar> will also be added automatically.


A ;-list of header search paths to pass to the compiler. These will be the only header search paths used--the contents of the INCLUDE_DIRECTORIES directory property will be ignored.


New in version 3.14.

A ;-list of options to add to the link command (see try_compile() for further details).


A ;-list of libraries to add to the link command. These can be the name of system libraries or they can be Imported Targets (see try_compile() for further details).


New in version 3.1.

If this variable evaluates to a boolean true value, all status messages associated with the check will be suppressed.

See modules CheckIncludeFile and CheckIncludeFileCXX to check for a single header file in C or CXX languages.