diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2013-07-22 21:19:55 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-07-24 14:50:15 (GMT) |
commit | 31bd83e9fc6c88b7caccd742886b077f387081e9 (patch) | |
tree | 8f3fda676e97aec9090da5a6409c9000b2a14a83 | |
parent | cb57ce249e9bfa43ef39eac482d5edb037f3ddc8 (diff) | |
download | CMake-31bd83e9fc6c88b7caccd742886b077f387081e9.zip CMake-31bd83e9fc6c88b7caccd742886b077f387081e9.tar.gz CMake-31bd83e9fc6c88b7caccd742886b077f387081e9.tar.bz2 |
set_property: Do not remove a property when APPENDing nothing
-rw-r--r-- | Source/cmSetPropertyCommand.cxx | 6 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/EmptyProperty/CMakeLists.txt | 9 | ||||
-rw-r--r-- | Tests/EmptyProperty/EmptyProperty.cxx | 1 |
4 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmSetPropertyCommand.cxx b/Source/cmSetPropertyCommand.cxx index cc10840..b5e5225 100644 --- a/Source/cmSetPropertyCommand.cxx +++ b/Source/cmSetPropertyCommand.cxx @@ -84,12 +84,14 @@ bool cmSetPropertyCommand { doing = DoingNone; this->AppendMode = true; + this->Remove = false; this->AppendAsString = false; } else if(*arg == "APPEND_STRING") { doing = DoingNone; this->AppendMode = true; + this->Remove = false; this->AppendAsString = true; } else if(doing == DoingNames) @@ -160,7 +162,7 @@ bool cmSetPropertyCommand::HandleGlobalMode() } if(this->AppendMode) { - cm->AppendProperty(name, value, this->AppendAsString); + cm->AppendProperty(name, value ? value : "", this->AppendAsString); } else { @@ -226,7 +228,7 @@ bool cmSetPropertyCommand::HandleDirectoryMode() } if(this->AppendMode) { - mf->AppendProperty(name, value, this->AppendAsString); + mf->AppendProperty(name, value ? value : "", this->AppendAsString); } else { diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index fcefaf9..440cdf0 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -225,6 +225,7 @@ if(BUILD_TESTING) ADD_TEST_MACRO(ObjectLibrary UseCshared) ADD_TEST_MACRO(NewlineArgs NewlineArgs) ADD_TEST_MACRO(SetLang SetLang) + ADD_TEST_MACRO(EmptyProperty EmptyProperty) ADD_TEST_MACRO(ExternalOBJ ExternalOBJ) ADD_TEST_MACRO(LoadCommand LoadedCommand) ADD_TEST_MACRO(LinkDirectory bin/LinkDirectory) diff --git a/Tests/EmptyProperty/CMakeLists.txt b/Tests/EmptyProperty/CMakeLists.txt new file mode 100644 index 0000000..39e75f3 --- /dev/null +++ b/Tests/EmptyProperty/CMakeLists.txt @@ -0,0 +1,9 @@ +project (EmptyProperty) + +set_property(DIRECTORY APPEND + PROPERTY + COMPILE_DEFINITIONS) + +include(CTest) + +add_executable(EmptyProperty EmptyProperty.cxx) diff --git a/Tests/EmptyProperty/EmptyProperty.cxx b/Tests/EmptyProperty/EmptyProperty.cxx new file mode 100644 index 0000000..78f2de1 --- /dev/null +++ b/Tests/EmptyProperty/EmptyProperty.cxx @@ -0,0 +1 @@ +int main(void) { return 0; } |