From 5a5e0fa9d35ea49ef9d31993ab415fc0e390e8b0 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 10 Apr 2013 18:12:56 +0200 Subject: Fix clearing of the INCLUDE_DIRECTORIES DIRECTORY property. This was broken by commit 18a3195a (Keep track of INCLUDE_DIRECTORIES as a vector of structs., 2012-11-19). --- Source/cmMakefile.cxx | 4 ++++ Tests/IncludeDirectories/CMakeLists.txt | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 25ccbc7..47a6d2e 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3458,6 +3458,10 @@ void cmMakefile::SetProperty(const char* prop, const char* value) if (propname == "INCLUDE_DIRECTORIES") { this->IncludeDirectoriesEntries.clear(); + if (!value) + { + return; + } cmListFileBacktrace lfbt; this->GetBacktrace(lfbt); this->IncludeDirectoriesEntries.push_back( diff --git a/Tests/IncludeDirectories/CMakeLists.txt b/Tests/IncludeDirectories/CMakeLists.txt index 60f5e5e..8a60f17 100644 --- a/Tests/IncludeDirectories/CMakeLists.txt +++ b/Tests/IncludeDirectories/CMakeLists.txt @@ -47,3 +47,14 @@ else() endif() add_subdirectory(TargetIncludeDirectories) + +set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}") +get_property(propContent DIRECTORY PROPERTY INCLUDE_DIRECTORIES) +if (NOT propContent STREQUAL "${CMAKE_BINARY_DIR}") + message(SEND_ERROR "Setting DIRECTORY property failed.") +endif() +set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES) +get_property(propContentAfter DIRECTORY PROPERTY INCLUDE_DIRECTORIES) +if (NOT propContentAfter STREQUAL "") + message(SEND_ERROR "Clearing DIRECTORY property failed.") +endif() -- cgit v0.12