ENH: INCLUDE_DIRECTORIES should have been written to prepend to the include path so that the most local directories are included first. This is a patch from Alex to resolve the problem by allowing users to switch the default using a variable CMAKE_INCLUDE_DIRECTORIES_BEFORE and then still explicitly appending or prepending by using AFTER or BEFORE arguments explicitly.
This commit is contained in:
parent
66faeeeab4
commit
cddedaa7d8
|
@ -26,12 +26,18 @@ bool cmIncludeDirectoryCommand::InitialPass(std::vector<std::string> const& args
|
|||
|
||||
std::vector<std::string>::const_iterator i = args.begin();
|
||||
|
||||
bool before = false;
|
||||
bool before = this->Makefile->IsOn("CMAKE_INCLUDE_DIRECTORIES_BEFORE");
|
||||
|
||||
if ((*i) == "BEFORE")
|
||||
{
|
||||
before = true;
|
||||
++i;
|
||||
}
|
||||
else if ((*i) == "AFTER")
|
||||
{
|
||||
before = false;
|
||||
++i;
|
||||
}
|
||||
|
||||
for(; i != args.end(); ++i)
|
||||
{
|
||||
|
|
|
@ -61,10 +61,13 @@ public:
|
|||
virtual const char* GetFullDocumentation()
|
||||
{
|
||||
return
|
||||
" INCLUDE_DIRECTORIES([BEFORE] dir1 dir2 ...)\n"
|
||||
" INCLUDE_DIRECTORIES([AFTER|BEFORE] dir1 dir2 ...)\n"
|
||||
"Add the given directories to those searched by the compiler for "
|
||||
"include files. If BEFORE is specified, the directories are prepended "
|
||||
"onto the current list of directories instead of appended.";
|
||||
"include files. By default the directories are appended onto "
|
||||
"the current list of directories. This default behavior can be "
|
||||
"changed by setting CMAKE_INCLUDE_DIRECTORIES_BEFORE to ON. "
|
||||
"By using BEFORE or AFTER you can select between appending and "
|
||||
"prepending, independent from the default. ";
|
||||
}
|
||||
|
||||
cmTypeMacro(cmIncludeDirectoryCommand, cmCommand);
|
||||
|
|
Loading…
Reference in New Issue