Automoc: fix the fix, need to use std::string, not just char* pointer

We need to take a copy of the property values, since the returned
char* pointer is reused by the following GetProperty() calls

Alex
This commit is contained in:
Alex Neundorf 2011-11-01 13:59:14 +01:00
parent 8c8305f286
commit 1ecc55aa7b
1 changed files with 10 additions and 7 deletions

View File

@ -124,18 +124,21 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
}
}
const char* _moc_incs = makefile->GetProperty("INCLUDE_DIRECTORIES");
const char* _moc_defs = makefile->GetProperty("DEFINITIONS");
const char* _moc_compile_defs = makefile->GetProperty("COMPILE_DEFINITIONS");
const char* tmp = makefile->GetProperty("INCLUDE_DIRECTORIES");
std::string _moc_incs = (tmp!=0 ? tmp : "");
tmp = makefile->GetProperty("DEFINITIONS");
std::string _moc_defs = (tmp!=0 ? tmp : "");
tmp = makefile->GetProperty("COMPILE_DEFINITIONS");
std::string _moc_compile_defs = (tmp!=0 ? tmp : "");
// forget the variables added here afterwards again:
cmMakefile::ScopePushPop varScope(makefile);
static_cast<void>(varScope);
makefile->AddDefinition("_moc_target_name", automocTargetName.c_str());
makefile->AddDefinition("_moc_incs", _moc_incs!=0 ? _moc_incs : "");
makefile->AddDefinition("_moc_defs", _moc_defs!=0 ? _moc_defs : "");
makefile->AddDefinition("_moc_compile_defs",
_moc_compile_defs!=0 ? _moc_compile_defs : "");
makefile->AddDefinition("_moc_incs", _moc_incs.c_str());
makefile->AddDefinition("_moc_defs", _moc_defs.c_str());
makefile->AddDefinition("_moc_compile_defs", _moc_compile_defs.c_str());
makefile->AddDefinition("_moc_files", _moc_files.c_str());
makefile->AddDefinition("_moc_headers", _moc_headers.c_str());