Merge topic 'fix-include_directories-whitespace-handling'

2f84dfe include_directories: Fix handling of empty or space-only entries
This commit is contained in:
Brad King 2013-05-21 15:22:27 -04:00 committed by CMake Topic Stage
commit 4825d70e83
3 changed files with 25 additions and 2 deletions

View File

@ -116,13 +116,19 @@ void cmIncludeDirectoryCommand::GetIncludes(const std::string &arg,
{
std::string inc = arg.substr(lastPos,pos);
this->NormalizeInclude(inc);
incs.push_back(inc);
if (!inc.empty())
{
incs.push_back(inc);
}
}
lastPos = pos + 1;
}
std::string inc = arg.substr(lastPos);
this->NormalizeInclude(inc);
incs.push_back(inc);
if (!inc.empty())
{
incs.push_back(inc);
}
}
void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc)
@ -133,6 +139,11 @@ void cmIncludeDirectoryCommand::NormalizeInclude(std::string &inc)
{
inc.assign(inc, b, 1+e-b); // copy the remaining substring
}
else
{
inc = "";
return;
}
if (!cmSystemTools::IsOff(inc.c_str()))
{

View File

@ -58,3 +58,14 @@ get_property(propContentAfter DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
if (NOT propContentAfter STREQUAL "")
message(SEND_ERROR "Clearing DIRECTORY property failed.")
endif()
add_library(empty_entry_test SHARED empty.cpp)
set_target_properties(empty_entry_test PROPERTIES INCLUDE_DIRECTORIES "")
include_directories(/one/two
" "
" "
)
get_target_property(incs empty_entry_test INCLUDE_DIRECTORIES)
if (NOT incs STREQUAL ";/one/two")
message(SEND_ERROR "Empty include_directories entry was not ignored.")
endif()

View File

@ -0,0 +1 @@
// No content