[CMake] CHECK_INCLUDE_FILES ignores CMAKE_FIND_ROOT_PATH, but should it?

Alexander Neundorf a.neundorf-work at gmx.net
Thu Jan 20 13:09:49 EST 2011


On Monday 10 January 2011, Bjørn Forsman wrote:
> Hi all,
>
> I just found out that CHECK_INCLUDE_FILES ignores CMAKE_FIND_ROOT_PATH. The
> documentation for CHECK_INCLUDE_FILES says:
>
>   ...
>   The following variables may be set before calling this macro  to
>   modify the way the check is run:
>
>     CMAKE_REQUIRED_FLAGS = string of compile command line flags
>     CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
>     CMAKE_REQUIRED_INCLUDES = list of include directories
>
> So it seems intentional. But wouldn't it make sense to let
> CHECK_INCLUDE_FILES look in CMAKE_FIND_ROOT_PATH? Or maybe more precise,
> give the compiler include flags for
> CMAKE_FIND_ROOT_PATH/{include/,usr/include}? It just seems wrong to me that
> include files in CMAKE_FIND_ROOT_PATH can be ignored like that and it
> destroys the meaning of CMAKE_FIND_ROOT_PATH. Comments?
>
> Is maybe CHECK_INCLUDE_FILES deprecated and FIND_PATH/FIND_FILE is the way
> to go?

check_include_files() is there to check whether header files in the compilers 
system include path exist, i.e. which are found without any -I switches.
So, from that POV, the behaviour is ok.

Can I actually tell the compiler/gcc to ignore its standard include dirs ?

What header files are you testing ?
From libc or from some other library ?

> I'm using CMake 2.8.2.

That behaviour didn't change recently.

Alex


More information about the CMake mailing list