From f69a6a7c8ca61b71991b9ec38e04a4eb932f35b6 Mon Sep 17 00:00:00 2001 From: Ken Martin Date: Thu, 20 Dec 2007 10:05:08 -0500 Subject: BUG: fix issue with CMAKE_CURENT_LIST_FILE reporting in funcitons --- Source/cmFunctionCommand.cxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx index ea6163a..5828cdd 100644 --- a/Source/cmFunctionCommand.cxx +++ b/Source/cmFunctionCommand.cxx @@ -150,8 +150,6 @@ bool cmFunctionHelperCommand::InvokeInitialPass this->Makefile->AddDefinition("ARGN", argnDef.c_str()); // Invoke all the functions that were collected in the block. - cmListFileFunction newLFF; - // for each function for(unsigned int c = 0; c < this->Functions.size(); ++c) { @@ -203,6 +201,18 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf) cmFunctionHelperCommand *f = new cmFunctionHelperCommand(); f->Args = this->Args; f->Functions = this->Functions; + + // Set the FilePath on the arguments to match the function since it is + // not stored and the original values may be freed + for (unsigned int i = 0; i < f->Functions.size(); ++i) + { + for (unsigned int j = 0; j < f->Functions[i].Arguments.size(); ++j) + { + f->Functions[i].Arguments[j].FilePath = + f->Functions[i].FilePath.c_str(); + } + } + std::string newName = "_" + this->Args[0]; mf.GetCMakeInstance()->RenameCommand(this->Args[0].c_str(), newName.c_str()); -- cgit v0.12