Browse Source

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.

pull/1/head
Brad King 20 years ago
parent
commit
cddedaa7d8
  1. 8
      Source/cmIncludeDirectoryCommand.cxx
  2. 9
      Source/cmIncludeDirectoryCommand.h

8
Source/cmIncludeDirectoryCommand.cxx

@ -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)
{

9
Source/cmIncludeDirectoryCommand.h

@ -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…
Cancel
Save