From d2f62e6ac35a742a762ab6e493cdb4914e6ed1ab Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 28 May 2007 09:59:08 -0400 Subject: [PATCH] ENH: Made cmTarget::GetSourceLists return a reference to const so that all additions of sources must go through access methods in cmTarget. --- Source/cmFLTKWrapUICommand.cxx | 2 +- Source/cmMakefile.cxx | 8 ++++---- Source/cmTarget.h | 7 ++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Source/cmFLTKWrapUICommand.cxx b/Source/cmFLTKWrapUICommand.cxx index d3d6f2816..6b2d61110 100644 --- a/Source/cmFLTKWrapUICommand.cxx +++ b/Source/cmFLTKWrapUICommand.cxx @@ -123,7 +123,7 @@ void cmFLTKWrapUICommand::FinalPass() // people should add the srcs to the target themselves, but the old command // didn't support that, so check and see if they added the files in and if // they didn;t then print a warning and add then anyhow - std::vector srcs = + std::vector const& srcs = this->Makefile->GetTargets()[this->Target].GetSourceLists(); bool found = false; for (unsigned int i = 0; i < srcs.size(); ++i) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 001f13d13..38b6d1f02 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -766,7 +766,7 @@ cmMakefile::AddCustomCommandOldStyle(const char* target, { if (this->Targets.find(target) != this->Targets.end()) { - this->Targets[target].GetSourceLists().push_back(source); + this->Targets[target].AddSourceListEntry(source); } else { @@ -848,7 +848,7 @@ void cmMakefile::AddUtilityCommand(const char* utilityName, commandLines, comment, workingDirectory, no_replace, escapeOldStyle); - target->GetSourceLists().push_back(force); + target->AddSourceListEntry(force.c_str()); // The output is not actually created so mark it symbolic. if(cmSourceFile* sf = this->GetSource(force.c_str())) @@ -1358,7 +1358,7 @@ void cmMakefile::AddLibrary(const char* lname, int shared, { target->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); } - target->GetSourceLists() = srcs; + target->SetSourceList(srcs); this->AddGlobalLinkInformation(lname, *target); } @@ -1371,7 +1371,7 @@ cmTarget* cmMakefile::AddExecutable(const char *exeName, { target->SetProperty("EXCLUDE_FROM_ALL", "TRUE"); } - target->GetSourceLists() = srcs; + target->SetSourceList(srcs); this->AddGlobalLinkInformation(exeName, *target); return target; } diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 8bb8f9b1f..454c95de2 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -76,7 +76,12 @@ public: /** * Get the list of the source lists used by this target */ - std::vector &GetSourceLists() {return this->SourceLists;} + std::vector const& GetSourceLists() {return this->SourceLists;} + + void AddSourceListEntry(const char* src) + { this->SourceLists.push_back(src); } + void SetSourceList(std::vector const& srcs) + { this->SourceLists = srcs; } ///! Return the list of frameworks being linked to this target std::vector &GetFrameworks() {return this->Frameworks;}