diff options
author | Brad King <brad.king@kitware.com> | 2013-06-05 13:44:13 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-06-05 13:44:13 (GMT) |
commit | 4b9188825a0c61ce370855d2ce42da97dc7b9a7f (patch) | |
tree | 33f0aeb3a3387af334a6646864214dfecdd5f39e | |
parent | e31caa69b9104d350ff89a9eecf6f9548c477b95 (diff) | |
parent | b8cc6f4eba0b7349de81a48aea18a43f99e78ca5 (diff) | |
download | CMake-4b9188825a0c61ce370855d2ce42da97dc7b9a7f.zip CMake-4b9188825a0c61ce370855d2ce42da97dc7b9a7f.tar.gz CMake-4b9188825a0c61ce370855d2ce42da97dc7b9a7f.tar.bz2 |
Merge branch 'fix-include_directories-whitespace-handling' into release
-rw-r--r-- | Source/cmIncludeDirectoryCommand.cxx | 15 | ||||
-rw-r--r-- | Tests/IncludeDirectories/CMakeLists.txt | 11 | ||||
-rw-r--r-- | Tests/IncludeDirectories/empty.cpp | 4 |
3 files changed, 28 insertions, 2 deletions
diff --git a/Source/cmIncludeDirectoryCommand.cxx b/Source/cmIncludeDirectoryCommand.cxx index ffb0e80..30c1743 100644 --- a/Source/cmIncludeDirectoryCommand.cxx +++ b/Source/cmIncludeDirectoryCommand.cxx @@ -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())) { diff --git a/Tests/IncludeDirectories/CMakeLists.txt b/Tests/IncludeDirectories/CMakeLists.txt index 8a60f17..3e3ecc9 100644 --- a/Tests/IncludeDirectories/CMakeLists.txt +++ b/Tests/IncludeDirectories/CMakeLists.txt @@ -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() diff --git a/Tests/IncludeDirectories/empty.cpp b/Tests/IncludeDirectories/empty.cpp new file mode 100644 index 0000000..1787013 --- /dev/null +++ b/Tests/IncludeDirectories/empty.cpp @@ -0,0 +1,4 @@ +#ifdef _WIN32 +__declspec(dllexport) +#endif +int empty() { return 0; } |