include_directories: Fix regression in BEFORE option (#15693)

Refactoring in commit 6ed9c7e0 (cmState: Host buildsystem properties for
directories, 2015-07-18) broke include_directories(BEFORE).  Fix it and
add a test case.
This commit is contained in:
Brad King 2015-08-21 13:42:04 -04:00
parent 86bb2ce757
commit a4bd30104f
4 changed files with 11 additions and 6 deletions

View File

@ -1296,22 +1296,21 @@ void cmState::Directory::PrependIncludeDirectoriesEntry(
this->DirectoryState->IncludeDirectories.begin()
+ this->Snapshot_.Position->IncludeDirectoryPosition;
std::vector<std::string>::const_reverse_iterator rend =
std::vector<std::string>::reverse_iterator rend =
this->DirectoryState->IncludeDirectories.rend();
std::vector<std::string>::reverse_iterator rbegin =
cmMakeReverseIterator(entryEnd);
std::vector<std::string>::const_reverse_iterator crbegin = rbegin;
crbegin = std::find(crbegin, rend, cmPropertySentinal);
rbegin = std::find(rbegin, rend, cmPropertySentinal);
std::vector<std::string>::const_iterator entryIt = crbegin.base();
std::vector<std::string>::const_iterator entryBegin =
std::vector<std::string>::iterator entryIt = rbegin.base();
std::vector<std::string>::iterator entryBegin =
this->DirectoryState->IncludeDirectories.begin();
std::vector<cmListFileBacktrace>::iterator btIt =
this->DirectoryState->IncludeDirectoryBacktraces.begin()
+ std::distance(entryBegin, entryIt);
this->DirectoryState->IncludeDirectories.insert(rbegin.base(), vec);
this->DirectoryState->IncludeDirectories.insert(entryIt, vec);
this->DirectoryState->IncludeDirectoryBacktraces.insert(btIt, lfbt);
this->Snapshot_.Position->IncludeDirectoryPosition =

View File

@ -0,0 +1 @@
-- INCLUDE_DIRECTORIES: '[^;]*/Tests/RunCMake/include_directories/BeforeDir;[^;]*/Tests/RunCMake/include_directories/AfterDir'

View File

@ -0,0 +1,4 @@
include_directories(AfterDir)
include_directories(BEFORE BeforeDir)
get_property(dirs DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
message(STATUS "INCLUDE_DIRECTORIES: '${dirs}'")

View File

@ -5,6 +5,7 @@ set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/NotDefa
run_cmake(NotFoundContent)
run_cmake(DebugIncludes)
run_cmake(DirectoryBefore)
run_cmake(TID-bad-target)
run_cmake(ImportedTarget)
run_cmake(CMP0021)