set_property: Do not remove a property when APPENDing nothing

This commit is contained in:
Ben Boeckel 2013-07-22 17:19:55 -04:00 committed by Brad King
parent cb57ce249e
commit 31bd83e9fc
4 changed files with 15 additions and 2 deletions

View File

@ -84,12 +84,14 @@ bool cmSetPropertyCommand
{ {
doing = DoingNone; doing = DoingNone;
this->AppendMode = true; this->AppendMode = true;
this->Remove = false;
this->AppendAsString = false; this->AppendAsString = false;
} }
else if(*arg == "APPEND_STRING") else if(*arg == "APPEND_STRING")
{ {
doing = DoingNone; doing = DoingNone;
this->AppendMode = true; this->AppendMode = true;
this->Remove = false;
this->AppendAsString = true; this->AppendAsString = true;
} }
else if(doing == DoingNames) else if(doing == DoingNames)
@ -160,7 +162,7 @@ bool cmSetPropertyCommand::HandleGlobalMode()
} }
if(this->AppendMode) if(this->AppendMode)
{ {
cm->AppendProperty(name, value, this->AppendAsString); cm->AppendProperty(name, value ? value : "", this->AppendAsString);
} }
else else
{ {
@ -226,7 +228,7 @@ bool cmSetPropertyCommand::HandleDirectoryMode()
} }
if(this->AppendMode) if(this->AppendMode)
{ {
mf->AppendProperty(name, value, this->AppendAsString); mf->AppendProperty(name, value ? value : "", this->AppendAsString);
} }
else else
{ {

View File

@ -225,6 +225,7 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(ObjectLibrary UseCshared) ADD_TEST_MACRO(ObjectLibrary UseCshared)
ADD_TEST_MACRO(NewlineArgs NewlineArgs) ADD_TEST_MACRO(NewlineArgs NewlineArgs)
ADD_TEST_MACRO(SetLang SetLang) ADD_TEST_MACRO(SetLang SetLang)
ADD_TEST_MACRO(EmptyProperty EmptyProperty)
ADD_TEST_MACRO(ExternalOBJ ExternalOBJ) ADD_TEST_MACRO(ExternalOBJ ExternalOBJ)
ADD_TEST_MACRO(LoadCommand LoadedCommand) ADD_TEST_MACRO(LoadCommand LoadedCommand)
ADD_TEST_MACRO(LinkDirectory bin/LinkDirectory) ADD_TEST_MACRO(LinkDirectory bin/LinkDirectory)

View File

@ -0,0 +1,9 @@
project (EmptyProperty)
set_property(DIRECTORY APPEND
PROPERTY
COMPILE_DEFINITIONS)
include(CTest)
add_executable(EmptyProperty EmptyProperty.cxx)

View File

@ -0,0 +1 @@
int main(void) { return 0; }