[Cmake-commits] CMake branch, next, updated. v3.3.0-rc4-1213-gfb39325
Stephen Kelly
steveire at gmail.com
Tue Jul 21 14:16:40 EDT 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via fb393252d7bd48943b13c1824d32bb2d753a902d (commit)
via 6ad639ba3957e8f6378ecb9a8cba92033d0630e1 (commit)
via c8891e501394653b679a6befa17cde940edc0adf (commit)
via 1e2a6be0eccc50a323ee4464b3e36a2610ea94e4 (commit)
via ccabdee8344ae239957c4576d1d236c5f8bc179f (commit)
via dd128f84e8bf1e035d0297a13c22d6dd5edc77ef (commit)
via 8ffcaf17f9e125c9b907c66f94017c1a1e22a44a (commit)
via 26fbf4b9638f9e071b973bc5db7cc8614265f9ca (commit)
via 0632b9a2726aeb20eec1796b62cc5b104a325ac9 (commit)
via a50492d800abc6287c35ea77ea29e19994376e29 (commit)
via 3abae9fdabfd8ae919a08321c645bb63584773f6 (commit)
via 4f866c382384da1e9fba1c3dacd14b90d48475cc (commit)
via c4d260c8e4205a05e8a1decb76e02c3d36a94793 (commit)
from f5350a90875848979d56e6843b2e61c5a6b2a725 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fb393252d7bd48943b13c1824d32bb2d753a902d
commit fb393252d7bd48943b13c1824d32bb2d753a902d
Merge: f5350a9 6ad639b
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 21 14:16:37 2015 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jul 21 14:16:37 2015 -0400
Merge topic 'refactor-cmMakefile-properties' into next
6ad639ba cmState: Host buildsystem properties for directories.
c8891e50 cmMakefile: Don't clear buildsystem properties.
1e2a6be0 cmMakefile: Use Ranges for buildsystem property access.
ccabdee8 cmMakefile: Split accessors for include directories and origins.
dd128f84 cmMakefile: Split accessors for compile options and origins.
8ffcaf17 cmMakefile: Split accessors for compile definitions and origins.
26fbf4b9 cmMakefile: Separate storage of buildsystem properties and their origins.
0632b9a2 cmMakefile: Out of line some API.
a50492d8 cmMakefile: Remove some references from APIs.
3abae9fd cmAlgorithms: Add some convenient typedefs.
4f866c38 cmAlgorithms: Move Range type out of private namespace.
c4d260c8 cmAlgorithms: Rename cmRange to cmMakeRange.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ad639ba3957e8f6378ecb9a8cba92033d0630e1
commit 6ad639ba3957e8f6378ecb9a8cba92033d0630e1
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 18 12:28:49 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 20:16:12 2015 +0200
cmState: Host buildsystem properties for directories.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index e672bf6..f0f54e7 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -273,68 +273,34 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
}
-template<typename Range, typename T>
-typename Range::const_iterator find_backwards(Range const& range, T t)
-{
- typename Range::const_reverse_iterator rend =
- std::find(range.rbegin(), range.rend(), t);
- return rend.base();
-}
-
cmStringRange cmMakefile::GetIncludeDirectoriesEntries() const
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->IncludeDirectoriesEntries, std::string());
- return cmMakeRange(it, this->IncludeDirectoriesEntries.end());
+ return this->StateSnapshot.GetDirectory().GetIncludeDirectoriesEntries();
}
cmBacktraceRange cmMakefile::GetIncludeDirectoriesBacktraces() const
{
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->IncludeDirectoriesEntryBacktraces.begin();
- std::vector<std::string>::const_iterator it =
- find_backwards(this->IncludeDirectoriesEntries, std::string());
- std::advance(btIt,
- std::distance(this->IncludeDirectoriesEntries.begin(), it));
- return cmMakeRange(
- btIt, this->IncludeDirectoriesEntryBacktraces.end());
+ return this->StateSnapshot.GetDirectory().GetIncludeDirectoriesEntryBacktraces();
}
cmStringRange cmMakefile::GetCompileOptionsEntries() const
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileOptionsEntries, std::string());
- return cmMakeRange(it, this->CompileOptionsEntries.end());
+ return this->StateSnapshot.GetDirectory().GetCompileOptionsEntries();
}
cmBacktraceRange cmMakefile::GetCompileOptionsBacktraces() const
{
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->CompileOptionsEntryBacktraces.begin();
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileOptionsEntries, std::string());
- std::advance(btIt, std::distance(this->CompileOptionsEntries.begin(), it));
- return cmMakeRange(
- btIt, this->CompileOptionsEntryBacktraces.end());
+ return this->StateSnapshot.GetDirectory().GetCompileOptionsEntryBacktraces();
}
cmStringRange cmMakefile::GetCompileDefinitionsEntries() const
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileDefinitionsEntries, std::string());
- return cmMakeRange(it, this->CompileDefinitionsEntries.end());
+ return this->StateSnapshot.GetDirectory().GetCompileDefinitionsEntries();
}
cmBacktraceRange cmMakefile::GetCompileDefinitionsBacktraces() const
{
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->CompileDefinitionsEntryBacktraces.begin();
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileDefinitionsEntries, std::string());
- std::advance(btIt,
- std::distance(this->CompileDefinitionsEntries.begin(), it));
- return cmMakeRange(
- btIt, this->CompileDefinitionsEntryBacktraces.end());
+ return this->StateSnapshot.GetDirectory().GetCompileDefinitionsEntryBacktraces();
}
//----------------------------------------------------------------------------
@@ -1591,62 +1557,7 @@ void cmMakefile::InitializeFromParent(cmMakefile* parent)
this->AddDefinition("CMAKE_CURRENT_BINARY_DIR",
this->GetCurrentBinaryDirectory());
- {
- std::vector<std::string>::const_iterator it =
- find_backwards(parent->IncludeDirectoriesEntries, std::string());
- std::vector<std::string>::const_iterator begin =
- parent->IncludeDirectoriesEntries.begin();
- std::vector<std::string>::const_iterator end =
- parent->IncludeDirectoriesEntries.end();
- this->IncludeDirectoriesEntries.insert(
- this->IncludeDirectoriesEntries.end(), it, end);
-
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- parent->IncludeDirectoriesEntryBacktraces.begin();
- std::advance(btIt, std::distance(begin, it));
- std::vector<cmListFileBacktrace>::const_iterator btEnd =
- parent->IncludeDirectoriesEntryBacktraces.end();
- this->IncludeDirectoriesEntryBacktraces.insert(
- this->IncludeDirectoriesEntryBacktraces.end(), btIt, btEnd);
- }
-
- {
- std::vector<std::string>::const_iterator it =
- find_backwards(parent->CompileOptionsEntries, std::string());
- std::vector<std::string>::const_iterator begin =
- parent->CompileOptionsEntries.begin();
- std::vector<std::string>::const_iterator end =
- parent->CompileOptionsEntries.end();
- this->CompileOptionsEntries.insert(
- this->CompileOptionsEntries.end(), it, end);
-
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- parent->CompileOptionsEntryBacktraces.begin();
- std::advance(btIt, std::distance(begin, it));
- std::vector<cmListFileBacktrace>::const_iterator btEnd =
- parent->CompileOptionsEntryBacktraces.end();
- this->CompileOptionsEntryBacktraces.insert(
- this->CompileOptionsEntryBacktraces.end(), btIt, btEnd);
- }
-
- {
- std::vector<std::string>::const_iterator it =
- find_backwards(parent->CompileDefinitionsEntries, std::string());
- std::vector<std::string>::const_iterator begin =
- parent->CompileDefinitionsEntries.begin();
- std::vector<std::string>::const_iterator end =
- parent->CompileDefinitionsEntries.end();
- this->CompileDefinitionsEntries.insert(
- this->CompileDefinitionsEntries.end(), it, end);
-
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- parent->CompileDefinitionsEntryBacktraces.begin();
- std::advance(btIt, std::distance(begin, it));
- std::vector<cmListFileBacktrace>::const_iterator btEnd =
- parent->CompileDefinitionsEntryBacktraces.end();
- this->CompileDefinitionsEntryBacktraces.insert(
- this->CompileDefinitionsEntryBacktraces.end(), btIt, btEnd);
- }
+ this->StateSnapshot.InitializeFromParent();
this->SystemIncludeDirectories = parent->SystemIncludeDirectories;
@@ -1990,14 +1901,17 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
return;
}
- std::vector<std::string>::iterator position =
- before ? this->IncludeDirectoriesEntries.begin()
- : this->IncludeDirectoriesEntries.end();
-
cmListFileBacktrace lfbt = this->GetBacktrace();
std::string entryString = cmJoin(incs, ";");
- this->IncludeDirectoriesEntries.insert(position, entryString);
- this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
+ if (before)
+ {
+ this->StateSnapshot.GetDirectory().PrependIncludeDirectoriesEntry(entryString, lfbt);
+ }
+ else
+ {
+ this->StateSnapshot.GetDirectory().AppendIncludeDirectoriesEntry(entryString, lfbt);
+ }
+ // Note: Deleted code was not correct. Used push_back with backtraces.
// Property on each target:
for (cmTargets::iterator l = this->Targets.begin();
@@ -4223,41 +4137,35 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
{
if (prop == "INCLUDE_DIRECTORIES")
{
- this->IncludeDirectoriesEntries.push_back(std::string());
- this->IncludeDirectoriesEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
+ this->StateSnapshot.GetDirectory().ClearIncludeDirectories();
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->IncludeDirectoriesEntries.push_back(value);
- this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().SetIncludeDirectories(value, lfbt);
return;
}
if (prop == "COMPILE_OPTIONS")
{
- this->CompileOptionsEntries.push_back(std::string());
- this->CompileDefinitionsEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
+ this->StateSnapshot.GetDirectory().ClearCompileOptions();
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileOptionsEntries.push_back(value);
- this->CompileOptionsEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().SetCompileOptions(value, lfbt);
return;
}
if (prop == "COMPILE_DEFINITIONS")
{
- this->CompileDefinitionsEntries.push_back(std::string());
- this->CompileDefinitionsEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
+ this->StateSnapshot.GetDirectory().ClearCompileDefinitions();
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileDefinitionsEntries.push_back(value);
- this->CompileDefinitionsEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().SetCompileDefinitions(value, lfbt);
return;
}
@@ -4271,22 +4179,19 @@ void cmMakefile::AppendProperty(const std::string& prop,
if (prop == "INCLUDE_DIRECTORIES")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->IncludeDirectoriesEntries.push_back(value);
- this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().AppendIncludeDirectoriesEntry(value, lfbt);
return;
}
if (prop == "COMPILE_OPTIONS")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileOptionsEntries.push_back(value);
- this->CompileOptionsEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().AppendCompileOptionsEntry(value, lfbt);
return;
}
if (prop == "COMPILE_DEFINITIONS")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileDefinitionsEntries.push_back(value);
- this->CompileDefinitionsEntryBacktraces.push_back(lfbt);
+ this->StateSnapshot.GetDirectory().AppendCompileDefinitionsEntry(value, lfbt);
return;
}
@@ -4341,25 +4246,17 @@ const char *cmMakefile::GetProperty(const std::string& prop,
}
else if (prop == "INCLUDE_DIRECTORIES")
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->IncludeDirectoriesEntries, std::string());
- output = cmJoin(cmMakeRange(it, this->IncludeDirectoriesEntries.end()),
- ";");
+ output = cmJoin(this->StateSnapshot.GetDirectory().GetIncludeDirectoriesEntries(), ";");
return output.c_str();
}
else if (prop == "COMPILE_OPTIONS")
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileOptionsEntries, std::string());
- output = cmJoin(cmMakeRange(it, this->CompileOptionsEntries.end()), ";");
+ output = cmJoin(this->StateSnapshot.GetDirectory().GetCompileOptionsEntries(), ";");
return output.c_str();
}
else if (prop == "COMPILE_DEFINITIONS")
{
- std::vector<std::string>::const_iterator it =
- find_backwards(this->CompileDefinitionsEntries, std::string());
- output = cmJoin(cmMakeRange(it, this->CompileDefinitionsEntries.end()),
- ";");
+ output = cmJoin(this->StateSnapshot.GetDirectory().GetCompileDefinitionsEntries(), ";");
return output.c_str();
}
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 27911a9..c335a33 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -846,13 +846,6 @@ protected:
std::vector<std::string> HeaderFileExtensions;
std::string DefineFlags;
- std::vector<std::string> IncludeDirectoriesEntries;
- std::vector<cmListFileBacktrace> IncludeDirectoriesEntryBacktraces;
- std::vector<std::string> CompileOptionsEntries;
- std::vector<cmListFileBacktrace> CompileOptionsEntryBacktraces;
- std::vector<std::string> CompileDefinitionsEntries;
- std::vector<cmListFileBacktrace> CompileDefinitionsEntryBacktraces;
-
// Track the value of the computed DEFINITIONS property.
void AddDefineFlag(const char*, std::string&);
void RemoveDefineFlag(const char*, std::string::size_type, std::string&);
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 9cbb841..60e1fd8 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -28,6 +28,9 @@ struct cmState::SnapshotDataType
BuildSystemDirectory;
std::string EntryPointCommand;
long EntryPointLine;
+ std::vector<std::string>::size_type ThisIncludeDirectoryPosition;
+ std::vector<std::string>::size_type ThisCompileDefinitionsPosition;
+ std::vector<std::string>::size_type ThisCompileOptionsPosition;
};
struct cmState::BuildsystemDirectoryStateType
@@ -44,6 +47,15 @@ struct cmState::BuildsystemDirectoryStateType
// safely by the build tools.
std::string RelativePathTopSource;
std::string RelativePathTopBinary;
+
+ std::vector<std::string> IncludeDirectories;
+ std::vector<cmListFileBacktrace> IncludeDirectoryBacktraces;
+
+ std::vector<std::string> CompileDefinitions;
+ std::vector<cmListFileBacktrace> CompileDefinitionsBacktraces;
+
+ std::vector<std::string> CompileOptions;
+ std::vector<cmListFileBacktrace> CompileOptionsBacktraces;
};
cmState::cmState(cmake* cm)
@@ -228,7 +240,15 @@ cmState::Snapshot cmState::Reset()
this->GlobalProperties.clear();
this->PropertyDefinitions.clear();
- this->BuildsystemDirectory.Truncate();
+ {
+ cmLinkedTree<BuildsystemDirectoryStateType>::iterator it = this->BuildsystemDirectory.Truncate();
+ it->IncludeDirectories.clear();
+ it->IncludeDirectoryBacktraces.clear();
+ it->CompileDefinitions.clear();
+ it->CompileDefinitionsBacktraces.clear();
+ it->CompileOptions.clear();
+ it->CompileOptionsBacktraces.clear();
+ }
PositionType pos = this->SnapshotData.Truncate();
this->ExecutionListFiles.Truncate();
@@ -698,6 +718,9 @@ cmState::Snapshot cmState::CreateBaseSnapshot()
this->BuildsystemDirectory.Extend(this->BuildsystemDirectory.Root());
pos->ExecutionListFile =
this->ExecutionListFiles.Extend(this->ExecutionListFiles.Root());
+ pos->ThisIncludeDirectoryPosition = 0;
+ pos->ThisCompileDefinitionsPosition = 0;
+ pos->ThisCompileOptionsPosition = 0;
return cmState::Snapshot(this, pos);
}
@@ -716,6 +739,9 @@ cmState::CreateBuildsystemDirectorySnapshot(Snapshot originSnapshot,
pos->BuildSystemDirectory =
this->BuildsystemDirectory.Extend(
originSnapshot.Position->BuildSystemDirectory);
+ pos->ThisIncludeDirectoryPosition = pos->BuildSystemDirectory->IncludeDirectories.size();
+ pos->ThisCompileDefinitionsPosition = pos->BuildSystemDirectory->CompileDefinitions.size();
+ pos->ThisCompileOptionsPosition = pos->BuildSystemDirectory->CompileOptions.size();
pos->ExecutionListFile =
this->ExecutionListFiles.Extend(
originSnapshot.Position->ExecutionListFile);
@@ -733,6 +759,9 @@ cmState::CreateFunctionCallSnapshot(cmState::Snapshot originSnapshot,
pos->CallStackParent = originSnapshot.Position;
pos->EntryPointLine = entryPointLine;
pos->EntryPointCommand = entryPointCommand;
+ pos->ThisIncludeDirectoryPosition = pos->BuildSystemDirectory->IncludeDirectories.size();
+ pos->ThisCompileDefinitionsPosition = pos->BuildSystemDirectory->CompileDefinitions.size();
+ pos->ThisCompileOptionsPosition = pos->BuildSystemDirectory->CompileOptions.size();
pos->SnapshotType = FunctionCallType;
pos->ExecutionListFile = this->ExecutionListFiles.Extend(
originSnapshot.Position->ExecutionListFile, fileName);
@@ -751,6 +780,9 @@ cmState::CreateMacroCallSnapshot(cmState::Snapshot originSnapshot,
pos->CallStackParent = originSnapshot.Position;
pos->EntryPointLine = entryPointLine;
pos->EntryPointCommand = entryPointCommand;
+ pos->ThisIncludeDirectoryPosition = pos->BuildSystemDirectory->IncludeDirectories.size();
+ pos->ThisCompileDefinitionsPosition = pos->BuildSystemDirectory->CompileDefinitions.size();
+ pos->ThisCompileOptionsPosition = pos->BuildSystemDirectory->CompileOptions.size();
pos->SnapshotType = MacroCallType;
pos->ExecutionListFile = this->ExecutionListFiles.Extend(
originSnapshot.Position->ExecutionListFile, fileName);
@@ -768,6 +800,9 @@ cmState::CreateCallStackSnapshot(cmState::Snapshot originSnapshot,
pos->CallStackParent = originSnapshot.Position;
pos->EntryPointLine = entryPointLine;
pos->EntryPointCommand = entryPointCommand;
+ pos->ThisIncludeDirectoryPosition = pos->BuildSystemDirectory->IncludeDirectories.size();
+ pos->ThisCompileDefinitionsPosition = pos->BuildSystemDirectory->CompileDefinitions.size();
+ pos->ThisCompileOptionsPosition = pos->BuildSystemDirectory->CompileOptions.size();
pos->SnapshotType = CallStackType;
pos->ExecutionListFile = this->ExecutionListFiles.Extend(
originSnapshot.Position->ExecutionListFile, fileName);
@@ -785,6 +820,9 @@ cmState::CreateInlineListFileSnapshot(cmState::Snapshot originSnapshot,
pos->CallStackParent = originSnapshot.Position;
pos->EntryPointLine = entryPointLine;
pos->EntryPointCommand = entryPointCommand;
+ pos->ThisIncludeDirectoryPosition = pos->BuildSystemDirectory->IncludeDirectories.size();
+ pos->ThisCompileDefinitionsPosition = pos->BuildSystemDirectory->CompileDefinitions.size();
+ pos->ThisCompileOptionsPosition = pos->BuildSystemDirectory->CompileOptions.size();
pos->SnapshotType = InlineListFileType;
pos->ExecutionListFile = this->ExecutionListFiles.Extend(
originSnapshot.Position->ExecutionListFile, fileName);
@@ -798,8 +836,14 @@ cmState::Snapshot cmState::Pop(cmState::Snapshot originSnapshot)
++prevPos;
if (prevPos == this->SnapshotData.Root())
{
+ prevPos->ThisIncludeDirectoryPosition = prevPos->BuildSystemDirectory->IncludeDirectories.size();
+ prevPos->ThisCompileDefinitionsPosition = prevPos->BuildSystemDirectory->CompileDefinitions.size();
+ prevPos->ThisCompileOptionsPosition = prevPos->BuildSystemDirectory->CompileOptions.size();
return Snapshot(this, prevPos);
}
+ originSnapshot.Position->CallStackParent->ThisIncludeDirectoryPosition = originSnapshot.Position->CallStackParent->BuildSystemDirectory->IncludeDirectories.size();
+ originSnapshot.Position->CallStackParent->ThisCompileDefinitionsPosition = originSnapshot.Position->CallStackParent->BuildSystemDirectory->CompileDefinitions.size();
+ originSnapshot.Position->CallStackParent->ThisCompileOptionsPosition = originSnapshot.Position->CallStackParent->BuildSystemDirectory->CompileOptions.size();
return Snapshot(this, originSnapshot.Position->CallStackParent);
}
@@ -943,6 +987,61 @@ cmState::Snapshot cmState::Snapshot::GetCallStackParent() const
return snapshot;
}
+template<typename T, typename U, typename V>
+void InitializeContentFromParent(T& parentContent,
+ T& thisContent,
+ U& parentBacktraces,
+ U& thisBacktraces,
+ V& contentEndPosition)
+{
+ std::vector<std::string>::const_iterator parentBegin =
+ parentContent.begin();
+ std::vector<std::string>::const_iterator parentEnd =
+ parentContent.end();
+
+ std::vector<std::string>::const_reverse_iterator parentRbegin =
+ std::reverse_iterator<std::vector<std::string>::const_iterator>(parentEnd);
+ std::vector<std::string>::const_reverse_iterator parentRend =
+ parentContent.rend();
+ parentRbegin = std::find(parentRbegin, parentRend, std::string());
+ std::vector<std::string>::const_iterator parentIt = parentRbegin.base();
+
+ thisContent = std::vector<std::string>(parentIt, parentEnd);
+
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parentBacktraces.begin();
+ std::advance(btIt, std::distance(parentBegin, parentIt));
+ std::vector<cmListFileBacktrace>::const_iterator btEnd =
+ parentBacktraces.end();
+
+ thisBacktraces = std::vector<cmListFileBacktrace>(btIt, btEnd);
+
+ contentEndPosition = thisContent.size();
+}
+
+void cmState::Snapshot::InitializeFromParent()
+{
+ PositionType parent = this->Position->DirectoryParent;
+
+ InitializeContentFromParent(parent->BuildSystemDirectory->IncludeDirectories,
+ this->Position->BuildSystemDirectory->IncludeDirectories,
+ parent->BuildSystemDirectory->IncludeDirectoryBacktraces,
+ this->Position->BuildSystemDirectory->IncludeDirectoryBacktraces,
+ this->Position->ThisIncludeDirectoryPosition);
+
+ InitializeContentFromParent(parent->BuildSystemDirectory->CompileDefinitions,
+ this->Position->BuildSystemDirectory->CompileDefinitions,
+ parent->BuildSystemDirectory->CompileDefinitionsBacktraces,
+ this->Position->BuildSystemDirectory->CompileDefinitionsBacktraces,
+ this->Position->ThisCompileDefinitionsPosition);
+
+ InitializeContentFromParent(parent->BuildSystemDirectory->CompileOptions,
+ this->Position->BuildSystemDirectory->CompileOptions,
+ parent->BuildSystemDirectory->CompileOptionsBacktraces,
+ this->Position->BuildSystemDirectory->CompileOptionsBacktraces,
+ this->Position->ThisCompileOptionsPosition);
+}
+
cmState* cmState::Snapshot::GetState() const
{
return this->State;
@@ -960,3 +1059,214 @@ cmState::Directory::Directory(
{
}
+
+template <typename T, typename U>
+cmStringRange GetPropertyContent(T const& content, U contentEndPosition)
+{
+ std::vector<std::string>::const_iterator end = content.begin();
+ std::advance(end, contentEndPosition);
+
+ std::vector<std::string>::const_reverse_iterator rbegin =
+ std::reverse_iterator<std::vector<std::string>::const_iterator>(end);
+ rbegin = std::find(rbegin, content.rend(), std::string());
+
+ return cmMakeRange(rbegin.base(), end);
+}
+
+template <typename T, typename U, typename V>
+cmBacktraceRange GetPropertyBacktraces(T const& content,
+ U const& backtraces,
+ V contentEndPosition)
+{
+ std::vector<std::string>::const_iterator entryEnd = content.begin();
+ std::advance(entryEnd, contentEndPosition);
+
+ std::vector<std::string>::const_reverse_iterator rbegin =
+ std::reverse_iterator<std::vector<std::string>::const_iterator>(entryEnd);
+ rbegin = std::find(rbegin, content.rend(), std::string());
+
+ std::vector<cmListFileBacktrace>::const_iterator it = backtraces.begin();
+ std::advance(it, std::distance(content.begin(), rbegin.base()));
+
+ std::vector<cmListFileBacktrace>::const_iterator end = backtraces.end();
+ return cmMakeRange(it, end);
+}
+
+template <typename T, typename U, typename V>
+void AppendEntry(T& content, U& backtraces, V& endContentPosition,
+ const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ assert(endContentPosition == content.size());
+
+ content.push_back(vec);
+ backtraces.push_back(lfbt);
+
+ endContentPosition = content.size();
+}
+
+template <typename T, typename U, typename V>
+void SetContent(T& content, U& backtraces, V& endContentPosition,
+ const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ assert(endContentPosition == content.size());
+
+ content.resize(content.size() + 2);
+ backtraces.resize(backtraces.size() + 2);
+
+ content.back() = vec;
+ backtraces.back() = lfbt;
+
+ endContentPosition = content.size();
+}
+
+template <typename T, typename U, typename V>
+void ClearContent(T& content, U& backtraces, V& endContentPosition)
+{
+ assert(endContentPosition == content.size());
+
+ content.resize(content.size() + 1);
+ backtraces.resize(backtraces.size() + 1);
+
+ endContentPosition = content.size();
+}
+
+cmStringRange
+cmState::Directory::GetIncludeDirectoriesEntries() const
+{
+ return GetPropertyContent(this->DirectoryState->IncludeDirectories,
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition);
+}
+
+cmBacktraceRange
+cmState::Directory::GetIncludeDirectoriesEntryBacktraces() const
+{
+ return GetPropertyBacktraces(this->DirectoryState->IncludeDirectories,
+ this->DirectoryState->IncludeDirectoryBacktraces,
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition);
+}
+
+void cmState::Directory::AppendIncludeDirectoriesEntry(
+ const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ AppendEntry(this->DirectoryState->IncludeDirectories,
+ this->DirectoryState->IncludeDirectoryBacktraces,
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::PrependIncludeDirectoriesEntry(
+ const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ std::vector<std::string>::const_iterator entryEnd =
+ this->DirectoryState->IncludeDirectories.begin();
+ std::advance(
+ entryEnd, this->Snapshot_.Position->ThisIncludeDirectoryPosition);
+
+ std::vector<std::string>::const_reverse_iterator rend =
+ this->DirectoryState->IncludeDirectories.rend();
+ std::vector<std::string>::const_reverse_iterator rbegin =
+ std::reverse_iterator<std::vector<std::string>::const_iterator>(entryEnd);
+ rbegin = std::find(rbegin, rend, std::string());
+
+ std::vector<std::string>::const_iterator entryIt = rbegin.base();
+ std::vector<std::string>::const_iterator entryBegin =
+ this->DirectoryState->IncludeDirectories.begin();
+
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->DirectoryState->IncludeDirectoryBacktraces.begin();
+ std::advance(btIt, std::distance(entryBegin, entryIt));
+
+ this->DirectoryState->IncludeDirectories.insert(entryIt, vec);
+ this->DirectoryState->IncludeDirectoryBacktraces.insert(btIt, lfbt);
+
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition =
+ this->DirectoryState->IncludeDirectories.size();
+}
+
+void cmState::Directory::SetIncludeDirectories(
+ const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ SetContent(this->DirectoryState->IncludeDirectories,
+ this->DirectoryState->IncludeDirectoryBacktraces,
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::ClearIncludeDirectories()
+{
+ ClearContent(this->DirectoryState->IncludeDirectories,
+ this->DirectoryState->IncludeDirectoryBacktraces,
+ this->Snapshot_.Position->ThisIncludeDirectoryPosition);
+}
+
+cmStringRange cmState::Directory::GetCompileDefinitionsEntries() const
+{
+ return GetPropertyContent(this->DirectoryState->CompileDefinitions,
+ this->Snapshot_.Position->ThisCompileDefinitionsPosition);
+}
+
+cmBacktraceRange cmState::Directory::GetCompileDefinitionsEntryBacktraces() const
+{
+ return GetPropertyBacktraces(this->DirectoryState->CompileDefinitions,
+ this->DirectoryState->CompileDefinitionsBacktraces,
+ this->Snapshot_.Position->ThisCompileDefinitionsPosition);
+}
+
+void cmState::Directory::AppendCompileDefinitionsEntry(const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ AppendEntry(this->DirectoryState->CompileDefinitions,
+ this->DirectoryState->CompileDefinitionsBacktraces,
+ this->Snapshot_.Position->ThisCompileDefinitionsPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::SetCompileDefinitions(const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ SetContent(this->DirectoryState->CompileDefinitions,
+ this->DirectoryState->CompileDefinitionsBacktraces,
+ this->Snapshot_.Position->ThisCompileDefinitionsPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::ClearCompileDefinitions()
+{
+ ClearContent(this->DirectoryState->CompileDefinitions,
+ this->DirectoryState->CompileDefinitionsBacktraces,
+ this->Snapshot_.Position->ThisCompileDefinitionsPosition);
+}
+
+cmStringRange cmState::Directory::GetCompileOptionsEntries() const
+{
+ return GetPropertyContent(this->DirectoryState->CompileOptions,
+ this->Snapshot_.Position->ThisCompileOptionsPosition);
+}
+
+cmBacktraceRange cmState::Directory::GetCompileOptionsEntryBacktraces() const
+{
+ return GetPropertyBacktraces(this->DirectoryState->CompileOptions,
+ this->DirectoryState->CompileOptionsBacktraces,
+ this->Snapshot_.Position->ThisCompileOptionsPosition);
+}
+
+void cmState::Directory::AppendCompileOptionsEntry(const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ AppendEntry(this->DirectoryState->CompileOptions,
+ this->DirectoryState->CompileOptionsBacktraces,
+ this->Snapshot_.Position->ThisCompileOptionsPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::SetCompileOptions(const std::string& vec, const cmListFileBacktrace& lfbt)
+{
+ SetContent(this->DirectoryState->CompileOptions,
+ this->DirectoryState->CompileOptionsBacktraces,
+ this->Snapshot_.Position->ThisCompileOptionsPosition,
+ vec, lfbt);
+}
+
+void cmState::Directory::ClearCompileOptions()
+{
+ ClearContent(this->DirectoryState->CompileOptions,
+ this->DirectoryState->CompileOptionsBacktraces,
+ this->Snapshot_.Position->ThisCompileOptionsPosition);
+}
diff --git a/Source/cmState.h b/Source/cmState.h
index acd23a5..2e7310f 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -16,6 +16,7 @@
#include "cmPropertyDefinitionMap.h"
#include "cmPropertyMap.h"
#include "cmLinkedTree.h"
+#include "cmAlgorithms.h"
class cmake;
class cmCommand;
@@ -55,6 +56,8 @@ public:
Snapshot GetBuildsystemDirectoryParent() const;
Snapshot GetCallStackParent() const;
+ void InitializeFromParent();
+
cmState* GetState() const;
Directory GetDirectory() const;
@@ -86,6 +89,32 @@ public:
void SetRelativePathTopSource(const char* dir);
void SetRelativePathTopBinary(const char* dir);
+ cmStringRange GetIncludeDirectoriesEntries() const;
+ cmBacktraceRange GetIncludeDirectoriesEntryBacktraces() const;
+ void AppendIncludeDirectoriesEntry(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void PrependIncludeDirectoriesEntry(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void SetIncludeDirectories(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void ClearIncludeDirectories();
+
+ cmStringRange GetCompileDefinitionsEntries() const;
+ cmBacktraceRange GetCompileDefinitionsEntryBacktraces() const;
+ void AppendCompileDefinitionsEntry(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void SetCompileDefinitions(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void ClearCompileDefinitions();
+
+ cmStringRange GetCompileOptionsEntries() const;
+ cmBacktraceRange GetCompileOptionsEntryBacktraces() const;
+ void AppendCompileOptionsEntry(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void SetCompileOptions(std::string const& vec,
+ cmListFileBacktrace const& lfbt);
+ void ClearCompileOptions();
+
private:
void ComputeRelativePathTopSource();
void ComputeRelativePathTopBinary();
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c8891e501394653b679a6befa17cde940edc0adf
commit c8891e501394653b679a6befa17cde940edc0adf
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Jul 9 00:02:45 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 20:01:03 2015 +0200
cmMakefile: Don't clear buildsystem properties.
Instead put a terminal empty entry in the container when a property
is overwritten. Use this terminal when reading from the containers.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index a1d9f22..e672bf6 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -273,34 +273,68 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
}
+template<typename Range, typename T>
+typename Range::const_iterator find_backwards(Range const& range, T t)
+{
+ typename Range::const_reverse_iterator rend =
+ std::find(range.rbegin(), range.rend(), t);
+ return rend.base();
+}
+
cmStringRange cmMakefile::GetIncludeDirectoriesEntries() const
{
- return cmMakeRange(this->IncludeDirectoriesEntries);
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->IncludeDirectoriesEntries, std::string());
+ return cmMakeRange(it, this->IncludeDirectoriesEntries.end());
}
cmBacktraceRange cmMakefile::GetIncludeDirectoriesBacktraces() const
{
- return cmMakeRange(this->IncludeDirectoriesEntryBacktraces);
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->IncludeDirectoriesEntryBacktraces.begin();
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->IncludeDirectoriesEntries, std::string());
+ std::advance(btIt,
+ std::distance(this->IncludeDirectoriesEntries.begin(), it));
+ return cmMakeRange(
+ btIt, this->IncludeDirectoriesEntryBacktraces.end());
}
cmStringRange cmMakefile::GetCompileOptionsEntries() const
{
- return cmMakeRange(this->CompileOptionsEntries);
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileOptionsEntries, std::string());
+ return cmMakeRange(it, this->CompileOptionsEntries.end());
}
cmBacktraceRange cmMakefile::GetCompileOptionsBacktraces() const
{
- return cmMakeRange(this->CompileOptionsEntryBacktraces);
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->CompileOptionsEntryBacktraces.begin();
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileOptionsEntries, std::string());
+ std::advance(btIt, std::distance(this->CompileOptionsEntries.begin(), it));
+ return cmMakeRange(
+ btIt, this->CompileOptionsEntryBacktraces.end());
}
cmStringRange cmMakefile::GetCompileDefinitionsEntries() const
{
- return cmMakeRange(this->CompileDefinitionsEntries);
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileDefinitionsEntries, std::string());
+ return cmMakeRange(it, this->CompileDefinitionsEntries.end());
}
cmBacktraceRange cmMakefile::GetCompileDefinitionsBacktraces() const
{
- return cmMakeRange(this->CompileDefinitionsEntryBacktraces);
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->CompileDefinitionsEntryBacktraces.begin();
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileDefinitionsEntries, std::string());
+ std::advance(btIt,
+ std::distance(this->CompileDefinitionsEntries.begin(), it));
+ return cmMakeRange(
+ btIt, this->CompileDefinitionsEntryBacktraces.end());
}
//----------------------------------------------------------------------------
@@ -1557,32 +1591,62 @@ void cmMakefile::InitializeFromParent(cmMakefile* parent)
this->AddDefinition("CMAKE_CURRENT_BINARY_DIR",
this->GetCurrentBinaryDirectory());
+ {
+ std::vector<std::string>::const_iterator it =
+ find_backwards(parent->IncludeDirectoriesEntries, std::string());
+ std::vector<std::string>::const_iterator begin =
+ parent->IncludeDirectoriesEntries.begin();
+ std::vector<std::string>::const_iterator end =
+ parent->IncludeDirectoriesEntries.end();
this->IncludeDirectoriesEntries.insert(
- this->IncludeDirectoriesEntries.end(),
- parent->IncludeDirectoriesEntries.begin(),
- parent->IncludeDirectoriesEntries.end());
+ this->IncludeDirectoriesEntries.end(), it, end);
+
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parent->IncludeDirectoriesEntryBacktraces.begin();
+ std::advance(btIt, std::distance(begin, it));
+ std::vector<cmListFileBacktrace>::const_iterator btEnd =
+ parent->IncludeDirectoriesEntryBacktraces.end();
this->IncludeDirectoriesEntryBacktraces.insert(
- this->IncludeDirectoriesEntryBacktraces.end(),
- parent->IncludeDirectoriesEntryBacktraces.begin(),
- parent->IncludeDirectoriesEntryBacktraces.end());
+ this->IncludeDirectoriesEntryBacktraces.end(), btIt, btEnd);
+ }
+ {
+ std::vector<std::string>::const_iterator it =
+ find_backwards(parent->CompileOptionsEntries, std::string());
+ std::vector<std::string>::const_iterator begin =
+ parent->CompileOptionsEntries.begin();
+ std::vector<std::string>::const_iterator end =
+ parent->CompileOptionsEntries.end();
this->CompileOptionsEntries.insert(
- this->CompileOptionsEntries.end(),
- parent->CompileOptionsEntries.begin(),
- parent->CompileOptionsEntries.end());
+ this->CompileOptionsEntries.end(), it, end);
+
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parent->CompileOptionsEntryBacktraces.begin();
+ std::advance(btIt, std::distance(begin, it));
+ std::vector<cmListFileBacktrace>::const_iterator btEnd =
+ parent->CompileOptionsEntryBacktraces.end();
this->CompileOptionsEntryBacktraces.insert(
- this->CompileOptionsEntryBacktraces.end(),
- parent->CompileOptionsEntryBacktraces.begin(),
- parent->CompileOptionsEntryBacktraces.end());
+ this->CompileOptionsEntryBacktraces.end(), btIt, btEnd);
+ }
+ {
+ std::vector<std::string>::const_iterator it =
+ find_backwards(parent->CompileDefinitionsEntries, std::string());
+ std::vector<std::string>::const_iterator begin =
+ parent->CompileDefinitionsEntries.begin();
+ std::vector<std::string>::const_iterator end =
+ parent->CompileDefinitionsEntries.end();
this->CompileDefinitionsEntries.insert(
- this->CompileDefinitionsEntries.end(),
- parent->CompileDefinitionsEntries.begin(),
- parent->CompileDefinitionsEntries.end());
+ this->CompileDefinitionsEntries.end(), it, end);
+
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parent->CompileDefinitionsEntryBacktraces.begin();
+ std::advance(btIt, std::distance(begin, it));
+ std::vector<cmListFileBacktrace>::const_iterator btEnd =
+ parent->CompileDefinitionsEntryBacktraces.end();
this->CompileDefinitionsEntryBacktraces.insert(
- this->CompileDefinitionsEntryBacktraces.end(),
- parent->CompileDefinitionsEntryBacktraces.begin(),
- parent->CompileDefinitionsEntryBacktraces.end());
+ this->CompileDefinitionsEntryBacktraces.end(), btIt, btEnd);
+ }
this->SystemIncludeDirectories = parent->SystemIncludeDirectories;
@@ -4159,8 +4223,8 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
{
if (prop == "INCLUDE_DIRECTORIES")
{
- this->IncludeDirectoriesEntries.clear();
- this->IncludeDirectoriesEntryBacktraces.clear();
+ this->IncludeDirectoriesEntries.push_back(std::string());
+ this->IncludeDirectoriesEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
return;
@@ -4172,8 +4236,8 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
}
if (prop == "COMPILE_OPTIONS")
{
- this->CompileOptionsEntries.clear();
- this->CompileDefinitionsEntryBacktraces.clear();
+ this->CompileOptionsEntries.push_back(std::string());
+ this->CompileDefinitionsEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
return;
@@ -4185,8 +4249,8 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
}
if (prop == "COMPILE_DEFINITIONS")
{
- this->CompileDefinitionsEntries.clear();
- this->CompileDefinitionsEntryBacktraces.clear();
+ this->CompileDefinitionsEntries.push_back(std::string());
+ this->CompileDefinitionsEntryBacktraces.push_back(cmListFileBacktrace());
if (!value)
{
return;
@@ -4277,17 +4341,25 @@ const char *cmMakefile::GetProperty(const std::string& prop,
}
else if (prop == "INCLUDE_DIRECTORIES")
{
- output = cmJoin(this->IncludeDirectoriesEntries, ";");
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->IncludeDirectoriesEntries, std::string());
+ output = cmJoin(cmMakeRange(it, this->IncludeDirectoriesEntries.end()),
+ ";");
return output.c_str();
}
else if (prop == "COMPILE_OPTIONS")
{
- output = cmJoin(this->CompileOptionsEntries, ";");
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileOptionsEntries, std::string());
+ output = cmJoin(cmMakeRange(it, this->CompileOptionsEntries.end()), ";");
return output.c_str();
}
else if (prop == "COMPILE_DEFINITIONS")
{
- output = cmJoin(this->CompileDefinitionsEntries, ";");
+ std::vector<std::string>::const_iterator it =
+ find_backwards(this->CompileDefinitionsEntries, std::string());
+ output = cmJoin(cmMakeRange(it, this->CompileDefinitionsEntries.end()),
+ ";");
return output.c_str();
}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1e2a6be0eccc50a323ee4464b3e36a2610ea94e4
commit 1e2a6be0eccc50a323ee4464b3e36a2610ea94e4
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 18 10:52:09 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:44 2015 +0200
cmMakefile: Use Ranges for buildsystem property access.
Don't return vector copies.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 2c5ed4f..40a8586 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1417,9 +1417,9 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
{
cmMakefile *mf = this->LocalGenerators[i]->GetMakefile();
- const std::vector<std::string> noconfig_compile_definitions =
+ const cmStringRange noconfig_compile_definitions =
mf->GetCompileDefinitionsEntries();
- const std::vector<cmListFileBacktrace> noconfig_compile_definitions_bts =
+ const cmBacktraceRange noconfig_compile_definitions_bts =
mf->GetCompileDefinitionsBacktraces();
cmTargets& targets = mf->GetTargets();
@@ -1435,9 +1435,9 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
continue;
}
- std::vector<cmListFileBacktrace>::const_iterator btIt
+ cmBacktraceRange::const_iterator btIt
= noconfig_compile_definitions_bts.begin();
- for (std::vector<std::string>::const_iterator it
+ for (cmStringRange::const_iterator it
= noconfig_compile_definitions.begin();
it != noconfig_compile_definitions.end(); ++it, ++btIt)
{
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 9a72e28..a1d9f22 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -273,38 +273,34 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
}
-std::vector<std::string> cmMakefile::GetIncludeDirectoriesEntries() const
+cmStringRange cmMakefile::GetIncludeDirectoriesEntries() const
{
- return this->IncludeDirectoriesEntries;
+ return cmMakeRange(this->IncludeDirectoriesEntries);
}
-std::vector<cmListFileBacktrace>
-cmMakefile::GetIncludeDirectoriesBacktraces() const
+cmBacktraceRange cmMakefile::GetIncludeDirectoriesBacktraces() const
{
- return this->IncludeDirectoriesEntryBacktraces;
+ return cmMakeRange(this->IncludeDirectoriesEntryBacktraces);
}
-
-std::vector<std::string> cmMakefile::GetCompileOptionsEntries() const
+cmStringRange cmMakefile::GetCompileOptionsEntries() const
{
- return this->CompileOptionsEntries;
+ return cmMakeRange(this->CompileOptionsEntries);
}
-std::vector<cmListFileBacktrace>
-cmMakefile::GetCompileOptionsBacktraces() const
+cmBacktraceRange cmMakefile::GetCompileOptionsBacktraces() const
{
- return this->CompileOptionsEntryBacktraces;
+ return cmMakeRange(this->CompileOptionsEntryBacktraces);
}
-std::vector<std::string> cmMakefile::GetCompileDefinitionsEntries() const
+cmStringRange cmMakefile::GetCompileDefinitionsEntries() const
{
- return this->CompileDefinitionsEntries;
+ return cmMakeRange(this->CompileDefinitionsEntries);
}
-std::vector<cmListFileBacktrace>
-cmMakefile::GetCompileDefinitionsBacktraces() const
+cmBacktraceRange cmMakefile::GetCompileDefinitionsBacktraces() const
{
- return this->CompileDefinitionsEntryBacktraces;
+ return cmMakeRange(this->CompileDefinitionsEntryBacktraces);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 8f236af..27911a9 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -22,6 +22,7 @@
#include "cmExpandedCommandArgument.h"
#include "cmake.h"
#include "cmState.h"
+#include "cmAlgorithms.h"
#if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cmSourceGroup.h"
@@ -746,12 +747,12 @@ public:
/** Set whether or not to report a CMP0000 violation. */
void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
- std::vector<std::string> GetIncludeDirectoriesEntries() const;
- std::vector<cmListFileBacktrace> GetIncludeDirectoriesBacktraces() const;
- std::vector<std::string> GetCompileOptionsEntries() const;
- std::vector<cmListFileBacktrace> GetCompileOptionsBacktraces() const;
- std::vector<std::string> GetCompileDefinitionsEntries() const;
- std::vector<cmListFileBacktrace> GetCompileDefinitionsBacktraces() const;
+ cmStringRange GetIncludeDirectoriesEntries() const;
+ cmBacktraceRange GetIncludeDirectoriesBacktraces() const;
+ cmStringRange GetCompileOptionsEntries() const;
+ cmBacktraceRange GetCompileOptionsBacktraces() const;
+ cmStringRange GetCompileDefinitionsEntries() const;
+ cmBacktraceRange GetCompileDefinitionsBacktraces() const;
bool IsConfigured() const { return this->Configured; }
void SetConfigured(){ this->Configured = true; }
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index ac453e2..22114fd 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -402,14 +402,13 @@ void cmTarget::SetMakefile(cmMakefile* mf)
{
// Initialize the INCLUDE_DIRECTORIES property based on the current value
// of the same directory property:
- const std::vector<std::string> parentIncludes =
+ const cmStringRange parentIncludes =
this->Makefile->GetIncludeDirectoriesEntries();
- const std::vector<cmListFileBacktrace> parentIncludesBts =
+ const cmBacktraceRange parentIncludesBts =
this->Makefile->GetIncludeDirectoriesBacktraces();
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- parentIncludesBts.begin();
- for (std::vector<std::string>::const_iterator it
+ cmBacktraceRange::const_iterator btIt = parentIncludesBts.begin();
+ for (cmStringRange::const_iterator it
= parentIncludes.begin();
it != parentIncludes.end(); ++it, ++btIt)
{
@@ -421,13 +420,13 @@ void cmTarget::SetMakefile(cmMakefile* mf)
this->SystemIncludeDirectories.insert(parentSystemIncludes.begin(),
parentSystemIncludes.end());
- const std::vector<std::string> parentOptions =
+ const cmStringRange parentOptions =
this->Makefile->GetCompileOptionsEntries();
- const std::vector<cmListFileBacktrace> parentOptionsBts =
+ const cmBacktraceRange parentOptionsBts =
this->Makefile->GetCompileOptionsBacktraces();
btIt = parentOptionsBts.begin();
- for (std::vector<std::string>::const_iterator it
+ for (cmStringRange::const_iterator it
= parentOptions.begin();
it != parentOptions.end(); ++it, ++btIt)
{
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ccabdee8344ae239957c4576d1d236c5f8bc179f
commit ccabdee8344ae239957c4576d1d236c5f8bc179f
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 23:35:01 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:44 2015 +0200
cmMakefile: Split accessors for include directories and origins.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index eec10f8..9a72e28 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -273,21 +273,18 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
}
-std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
+std::vector<std::string> cmMakefile::GetIncludeDirectoriesEntries() const
{
- std::vector<cmValueWithOrigin> entries;
- entries.reserve(this->IncludeDirectoriesEntries.size());
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->IncludeDirectoriesEntryBacktraces.begin();
- for(std::vector<std::string>::const_iterator it =
- this->IncludeDirectoriesEntries.begin();
- it != this->IncludeDirectoriesEntries.end(); ++it, ++btIt)
- {
- entries.push_back(cmValueWithOrigin(*it, *btIt));
- }
- return entries;
+ return this->IncludeDirectoriesEntries;
}
+std::vector<cmListFileBacktrace>
+cmMakefile::GetIncludeDirectoriesBacktraces() const
+{
+ return this->IncludeDirectoriesEntryBacktraces;
+}
+
+
std::vector<std::string> cmMakefile::GetCompileOptionsEntries() const
{
return this->CompileOptionsEntries;
@@ -1939,7 +1936,6 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
cmListFileBacktrace lfbt = this->GetBacktrace();
std::string entryString = cmJoin(incs, ";");
- cmValueWithOrigin entry(entryString, lfbt);
this->IncludeDirectoriesEntries.insert(position, entryString);
this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
@@ -1948,7 +1944,7 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
l != this->Targets.end(); ++l)
{
cmTarget &t = l->second;
- t.InsertInclude(entry, before);
+ t.InsertInclude(entryString, lfbt, before);
}
}
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 9b21608..8f236af 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -746,7 +746,8 @@ public:
/** Set whether or not to report a CMP0000 violation. */
void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
- std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
+ std::vector<std::string> GetIncludeDirectoriesEntries() const;
+ std::vector<cmListFileBacktrace> GetIncludeDirectoriesBacktraces() const;
std::vector<std::string> GetCompileOptionsEntries() const;
std::vector<cmListFileBacktrace> GetCompileOptionsBacktraces() const;
std::vector<std::string> GetCompileDefinitionsEntries() const;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 0aa66cd..ac453e2 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -402,13 +402,18 @@ void cmTarget::SetMakefile(cmMakefile* mf)
{
// Initialize the INCLUDE_DIRECTORIES property based on the current value
// of the same directory property:
- const std::vector<cmValueWithOrigin> parentIncludes =
- this->Makefile->GetIncludeDirectoriesEntries();
+ const std::vector<std::string> parentIncludes =
+ this->Makefile->GetIncludeDirectoriesEntries();
+ const std::vector<cmListFileBacktrace> parentIncludesBts =
+ this->Makefile->GetIncludeDirectoriesBacktraces();
- for (std::vector<cmValueWithOrigin>::const_iterator it
- = parentIncludes.begin(); it != parentIncludes.end(); ++it)
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parentIncludesBts.begin();
+ for (std::vector<std::string>::const_iterator it
+ = parentIncludes.begin();
+ it != parentIncludes.end(); ++it, ++btIt)
{
- this->InsertInclude(*it);
+ this->InsertInclude(*it, *btIt);
}
const std::set<std::string> parentSystemIncludes =
this->Makefile->GetSystemIncludeDirectories();
@@ -421,8 +426,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
const std::vector<cmListFileBacktrace> parentOptionsBts =
this->Makefile->GetCompileOptionsBacktraces();
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- parentOptionsBts.begin();
+ btIt = parentOptionsBts.begin();
for (std::vector<std::string>::const_iterator it
= parentOptions.begin();
it != parentOptions.end(); ++it, ++btIt)
@@ -1931,17 +1935,18 @@ void cmTarget::AppendBuildInterfaceIncludes()
}
//----------------------------------------------------------------------------
-void cmTarget::InsertInclude(const cmValueWithOrigin &entry,
- bool before)
+void cmTarget::InsertInclude(std::string const& entry,
+ cmListFileBacktrace const& bt,
+ bool before)
{
- cmGeneratorExpression ge(entry.Backtrace);
+ cmGeneratorExpression ge(bt);
std::vector<cmTargetInternals::TargetPropertyEntry*>::iterator position
= before ? this->Internal->IncludeDirectoriesEntries.begin()
: this->Internal->IncludeDirectoriesEntries.end();
this->Internal->IncludeDirectoriesEntries.insert(position,
- new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry.Value)));
+ new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry)));
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index ba3bc5a..f9bcb05 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -572,7 +572,8 @@ public:
std::vector<std::string> GetIncludeDirectories(
const std::string& config,
const std::string& language) const;
- void InsertInclude(const cmValueWithOrigin &entry,
+ void InsertInclude(std::string const& entry,
+ cmListFileBacktrace const& bt,
bool before = false);
void InsertCompileOption(std::string const& entry,
cmListFileBacktrace const& bt,
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index 24500db..7824c89 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -72,8 +72,7 @@ bool cmTargetIncludeDirectoriesCommand
bool prepend, bool system)
{
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
- cmValueWithOrigin entry(this->Join(content), lfbt);
- tgt->InsertInclude(entry, prepend);
+ tgt->InsertInclude(this->Join(content), lfbt, prepend);
if (system)
{
tgt->AddSystemIncludeDirectories(content);
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dd128f84e8bf1e035d0297a13c22d6dd5edc77ef
commit dd128f84e8bf1e035d0297a13c22d6dd5edc77ef
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 23:17:16 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:44 2015 +0200
cmMakefile: Split accessors for compile options and origins.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index e2194f3..eec10f8 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -288,19 +288,15 @@ std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
return entries;
}
-std::vector<cmValueWithOrigin> cmMakefile::GetCompileOptionsEntries() const
+std::vector<std::string> cmMakefile::GetCompileOptionsEntries() const
{
- std::vector<cmValueWithOrigin> entries;
- entries.reserve(this->CompileOptionsEntries.size());
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->CompileOptionsEntryBacktraces.begin();
- for(std::vector<std::string>::const_iterator it =
- this->CompileOptionsEntries.begin();
- it != this->CompileOptionsEntries.end(); ++it, ++btIt)
- {
- entries.push_back(cmValueWithOrigin(*it, *btIt));
- }
- return entries;
+ return this->CompileOptionsEntries;
+}
+
+std::vector<cmListFileBacktrace>
+cmMakefile::GetCompileOptionsBacktraces() const
+{
+ return this->CompileOptionsEntryBacktraces;
}
std::vector<std::string> cmMakefile::GetCompileDefinitionsEntries() const
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index e69ce1e..9b21608 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -747,7 +747,8 @@ public:
void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
- std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const;
+ std::vector<std::string> GetCompileOptionsEntries() const;
+ std::vector<cmListFileBacktrace> GetCompileOptionsBacktraces() const;
std::vector<std::string> GetCompileDefinitionsEntries() const;
std::vector<cmListFileBacktrace> GetCompileDefinitionsBacktraces() const;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 906517b..0aa66cd 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -416,13 +416,18 @@ void cmTarget::SetMakefile(cmMakefile* mf)
this->SystemIncludeDirectories.insert(parentSystemIncludes.begin(),
parentSystemIncludes.end());
- const std::vector<cmValueWithOrigin> parentOptions =
+ const std::vector<std::string> parentOptions =
this->Makefile->GetCompileOptionsEntries();
+ const std::vector<cmListFileBacktrace> parentOptionsBts =
+ this->Makefile->GetCompileOptionsBacktraces();
- for (std::vector<cmValueWithOrigin>::const_iterator it
- = parentOptions.begin(); it != parentOptions.end(); ++it)
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ parentOptionsBts.begin();
+ for (std::vector<std::string>::const_iterator it
+ = parentOptions.begin();
+ it != parentOptions.end(); ++it, ++btIt)
{
- this->InsertCompileOption(*it);
+ this->InsertCompileOption(*it, *btIt);
}
}
@@ -1940,17 +1945,18 @@ void cmTarget::InsertInclude(const cmValueWithOrigin &entry,
}
//----------------------------------------------------------------------------
-void cmTarget::InsertCompileOption(const cmValueWithOrigin &entry,
- bool before)
+void cmTarget::InsertCompileOption(std::string const& entry,
+ cmListFileBacktrace const& bt,
+ bool before)
{
- cmGeneratorExpression ge(entry.Backtrace);
+ cmGeneratorExpression ge(bt);
std::vector<cmTargetInternals::TargetPropertyEntry*>::iterator position
= before ? this->Internal->CompileOptionsEntries.begin()
: this->Internal->CompileOptionsEntries.end();
this->Internal->CompileOptionsEntries.insert(position,
- new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry.Value)));
+ new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry)));
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 9c98672..ba3bc5a 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -574,8 +574,9 @@ public:
const std::string& language) const;
void InsertInclude(const cmValueWithOrigin &entry,
bool before = false);
- void InsertCompileOption(const cmValueWithOrigin &entry,
- bool before = false);
+ void InsertCompileOption(std::string const& entry,
+ cmListFileBacktrace const& bt,
+ bool before = false);
void InsertCompileDefinition(std::string const& entry,
cmListFileBacktrace const& bt);
diff --git a/Source/cmTargetCompileOptionsCommand.cxx b/Source/cmTargetCompileOptionsCommand.cxx
index a85153d..8e86f0f 100644
--- a/Source/cmTargetCompileOptionsCommand.cxx
+++ b/Source/cmTargetCompileOptionsCommand.cxx
@@ -50,7 +50,6 @@ bool cmTargetCompileOptionsCommand
bool, bool)
{
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
- cmValueWithOrigin entry(this->Join(content), lfbt);
- tgt->InsertCompileOption(entry);
+ tgt->InsertCompileOption(this->Join(content), lfbt);
return true;
}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ffcaf17f9e125c9b907c66f94017c1a1e22a44a
commit 8ffcaf17f9e125c9b907c66f94017c1a1e22a44a
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 23:11:22 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmMakefile: Split accessors for compile definitions and origins.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 88ac0bc..2c5ed4f 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1417,8 +1417,10 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
{
cmMakefile *mf = this->LocalGenerators[i]->GetMakefile();
- const std::vector<cmValueWithOrigin> noconfig_compile_definitions =
+ const std::vector<std::string> noconfig_compile_definitions =
mf->GetCompileDefinitionsEntries();
+ const std::vector<cmListFileBacktrace> noconfig_compile_definitions_bts =
+ mf->GetCompileDefinitionsBacktraces();
cmTargets& targets = mf->GetTargets();
for(cmTargets::iterator ti = targets.begin();
@@ -1433,11 +1435,13 @@ void cmGlobalGenerator::FinalizeTargetCompileInfo()
continue;
}
- for (std::vector<cmValueWithOrigin>::const_iterator it
+ std::vector<cmListFileBacktrace>::const_iterator btIt
+ = noconfig_compile_definitions_bts.begin();
+ for (std::vector<std::string>::const_iterator it
= noconfig_compile_definitions.begin();
- it != noconfig_compile_definitions.end(); ++it)
+ it != noconfig_compile_definitions.end(); ++it, ++btIt)
{
- t->InsertCompileDefinition(*it);
+ t->InsertCompileDefinition(*it, *btIt);
}
cmPolicies::PolicyStatus polSt
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 5169981..e2194f3 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -303,19 +303,15 @@ std::vector<cmValueWithOrigin> cmMakefile::GetCompileOptionsEntries() const
return entries;
}
-std::vector<cmValueWithOrigin> cmMakefile::GetCompileDefinitionsEntries() const
+std::vector<std::string> cmMakefile::GetCompileDefinitionsEntries() const
{
- std::vector<cmValueWithOrigin> entries;
- entries.reserve(this->CompileDefinitionsEntries.size());
- std::vector<cmListFileBacktrace>::const_iterator btIt =
- this->CompileDefinitionsEntryBacktraces.begin();
- for(std::vector<std::string>::const_iterator it =
- this->CompileDefinitionsEntries.begin();
- it != this->CompileDefinitionsEntries.end(); ++it, ++btIt)
- {
- entries.push_back(cmValueWithOrigin(*it, *btIt));
- }
- return entries;
+ return this->CompileDefinitionsEntries;
+}
+
+std::vector<cmListFileBacktrace>
+cmMakefile::GetCompileDefinitionsBacktraces() const
+{
+ return this->CompileDefinitionsEntryBacktraces;
}
//----------------------------------------------------------------------------
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 57dcdb6..e69ce1e 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -748,7 +748,8 @@ public:
std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const;
- std::vector<cmValueWithOrigin> GetCompileDefinitionsEntries() const;
+ std::vector<std::string> GetCompileDefinitionsEntries() const;
+ std::vector<cmListFileBacktrace> GetCompileDefinitionsBacktraces() const;
bool IsConfigured() const { return this->Configured; }
void SetConfigured(){ this->Configured = true; }
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index ac39387..906517b 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1954,12 +1954,13 @@ void cmTarget::InsertCompileOption(const cmValueWithOrigin &entry,
}
//----------------------------------------------------------------------------
-void cmTarget::InsertCompileDefinition(const cmValueWithOrigin &entry)
+void cmTarget::InsertCompileDefinition(std::string const& entry,
+ cmListFileBacktrace const& bt)
{
- cmGeneratorExpression ge(entry.Backtrace);
+ cmGeneratorExpression ge(bt);
this->Internal->CompileDefinitionsEntries.push_back(
- new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry.Value)));
+ new cmTargetInternals::TargetPropertyEntry(ge.Parse(entry)));
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 1920312..9c98672 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -576,7 +576,8 @@ public:
bool before = false);
void InsertCompileOption(const cmValueWithOrigin &entry,
bool before = false);
- void InsertCompileDefinition(const cmValueWithOrigin &entry);
+ void InsertCompileDefinition(std::string const& entry,
+ cmListFileBacktrace const& bt);
void AppendBuildInterfaceIncludes();
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=26fbf4b9638f9e071b973bc5db7cc8614265f9ca
commit 26fbf4b9638f9e071b973bc5db7cc8614265f9ca
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 00:29:41 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmMakefile: Separate storage of buildsystem properties and their origins.
This simplifies some existing and upcoming algorithms.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d5775fb..5169981 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -275,17 +275,47 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
{
- return this->IncludeDirectoriesEntries;
+ std::vector<cmValueWithOrigin> entries;
+ entries.reserve(this->IncludeDirectoriesEntries.size());
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->IncludeDirectoriesEntryBacktraces.begin();
+ for(std::vector<std::string>::const_iterator it =
+ this->IncludeDirectoriesEntries.begin();
+ it != this->IncludeDirectoriesEntries.end(); ++it, ++btIt)
+ {
+ entries.push_back(cmValueWithOrigin(*it, *btIt));
+ }
+ return entries;
}
std::vector<cmValueWithOrigin> cmMakefile::GetCompileOptionsEntries() const
{
- return this->CompileOptionsEntries;
+ std::vector<cmValueWithOrigin> entries;
+ entries.reserve(this->CompileOptionsEntries.size());
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->CompileOptionsEntryBacktraces.begin();
+ for(std::vector<std::string>::const_iterator it =
+ this->CompileOptionsEntries.begin();
+ it != this->CompileOptionsEntries.end(); ++it, ++btIt)
+ {
+ entries.push_back(cmValueWithOrigin(*it, *btIt));
+ }
+ return entries;
}
std::vector<cmValueWithOrigin> cmMakefile::GetCompileDefinitionsEntries() const
{
- return this->CompileDefinitionsEntries;
+ std::vector<cmValueWithOrigin> entries;
+ entries.reserve(this->CompileDefinitionsEntries.size());
+ std::vector<cmListFileBacktrace>::const_iterator btIt =
+ this->CompileDefinitionsEntryBacktraces.begin();
+ for(std::vector<std::string>::const_iterator it =
+ this->CompileDefinitionsEntries.begin();
+ it != this->CompileDefinitionsEntries.end(); ++it, ++btIt)
+ {
+ entries.push_back(cmValueWithOrigin(*it, *btIt));
+ }
+ return entries;
}
//----------------------------------------------------------------------------
@@ -1542,23 +1572,32 @@ void cmMakefile::InitializeFromParent(cmMakefile* parent)
this->AddDefinition("CMAKE_CURRENT_BINARY_DIR",
this->GetCurrentBinaryDirectory());
- const std::vector<cmValueWithOrigin>& parentIncludes =
- parent->GetIncludeDirectoriesEntries();
- this->IncludeDirectoriesEntries.insert(this->IncludeDirectoriesEntries.end(),
- parentIncludes.begin(),
- parentIncludes.end());
-
- const std::vector<cmValueWithOrigin>& parentOptions =
- parent->GetCompileOptionsEntries();
- this->CompileOptionsEntries.insert(this->CompileOptionsEntries.end(),
- parentOptions.begin(),
- parentOptions.end());
-
- const std::vector<cmValueWithOrigin>& parentDefines =
- parent->GetCompileDefinitionsEntries();
- this->CompileDefinitionsEntries.insert(this->CompileDefinitionsEntries.end(),
- parentDefines.begin(),
- parentDefines.end());
+ this->IncludeDirectoriesEntries.insert(
+ this->IncludeDirectoriesEntries.end(),
+ parent->IncludeDirectoriesEntries.begin(),
+ parent->IncludeDirectoriesEntries.end());
+ this->IncludeDirectoriesEntryBacktraces.insert(
+ this->IncludeDirectoriesEntryBacktraces.end(),
+ parent->IncludeDirectoriesEntryBacktraces.begin(),
+ parent->IncludeDirectoriesEntryBacktraces.end());
+
+ this->CompileOptionsEntries.insert(
+ this->CompileOptionsEntries.end(),
+ parent->CompileOptionsEntries.begin(),
+ parent->CompileOptionsEntries.end());
+ this->CompileOptionsEntryBacktraces.insert(
+ this->CompileOptionsEntryBacktraces.end(),
+ parent->CompileOptionsEntryBacktraces.begin(),
+ parent->CompileOptionsEntryBacktraces.end());
+
+ this->CompileDefinitionsEntries.insert(
+ this->CompileDefinitionsEntries.end(),
+ parent->CompileDefinitionsEntries.begin(),
+ parent->CompileDefinitionsEntries.end());
+ this->CompileDefinitionsEntryBacktraces.insert(
+ this->CompileDefinitionsEntryBacktraces.end(),
+ parent->CompileDefinitionsEntryBacktraces.begin(),
+ parent->CompileDefinitionsEntryBacktraces.end());
this->SystemIncludeDirectories = parent->SystemIncludeDirectories;
@@ -1902,13 +1941,15 @@ void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
return;
}
- std::vector<cmValueWithOrigin>::iterator position =
+ std::vector<std::string>::iterator position =
before ? this->IncludeDirectoriesEntries.begin()
: this->IncludeDirectoriesEntries.end();
cmListFileBacktrace lfbt = this->GetBacktrace();
- cmValueWithOrigin entry(cmJoin(incs, ";"), lfbt);
- this->IncludeDirectoriesEntries.insert(position, entry);
+ std::string entryString = cmJoin(incs, ";");
+ cmValueWithOrigin entry(entryString, lfbt);
+ this->IncludeDirectoriesEntries.insert(position, entryString);
+ this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
// Property on each target:
for (cmTargets::iterator l = this->Targets.begin();
@@ -4135,36 +4176,40 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
if (prop == "INCLUDE_DIRECTORIES")
{
this->IncludeDirectoriesEntries.clear();
+ this->IncludeDirectoriesEntryBacktraces.clear();
if (!value)
{
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->IncludeDirectoriesEntries.push_back(
- cmValueWithOrigin(value, lfbt));
+ this->IncludeDirectoriesEntries.push_back(value);
+ this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
return;
}
if (prop == "COMPILE_OPTIONS")
{
this->CompileOptionsEntries.clear();
+ this->CompileDefinitionsEntryBacktraces.clear();
if (!value)
{
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileOptionsEntries.push_back(cmValueWithOrigin(value, lfbt));
+ this->CompileOptionsEntries.push_back(value);
+ this->CompileOptionsEntryBacktraces.push_back(lfbt);
return;
}
if (prop == "COMPILE_DEFINITIONS")
{
this->CompileDefinitionsEntries.clear();
+ this->CompileDefinitionsEntryBacktraces.clear();
if (!value)
{
return;
}
cmListFileBacktrace lfbt = this->GetBacktrace();
- cmValueWithOrigin entry(value, lfbt);
- this->CompileDefinitionsEntries.push_back(entry);
+ this->CompileDefinitionsEntries.push_back(value);
+ this->CompileDefinitionsEntryBacktraces.push_back(lfbt);
return;
}
@@ -4178,22 +4223,22 @@ void cmMakefile::AppendProperty(const std::string& prop,
if (prop == "INCLUDE_DIRECTORIES")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->IncludeDirectoriesEntries.push_back(
- cmValueWithOrigin(value, lfbt));
+ this->IncludeDirectoriesEntries.push_back(value);
+ this->IncludeDirectoriesEntryBacktraces.push_back(lfbt);
return;
}
if (prop == "COMPILE_OPTIONS")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileOptionsEntries.push_back(
- cmValueWithOrigin(value, lfbt));
+ this->CompileOptionsEntries.push_back(value);
+ this->CompileOptionsEntryBacktraces.push_back(lfbt);
return;
}
if (prop == "COMPILE_DEFINITIONS")
{
cmListFileBacktrace lfbt = this->GetBacktrace();
- this->CompileDefinitionsEntries.push_back(
- cmValueWithOrigin(value, lfbt));
+ this->CompileDefinitionsEntries.push_back(value);
+ this->CompileDefinitionsEntryBacktraces.push_back(lfbt);
return;
}
@@ -4248,44 +4293,17 @@ const char *cmMakefile::GetProperty(const std::string& prop,
}
else if (prop == "INCLUDE_DIRECTORIES")
{
- std::string sep;
- for (std::vector<cmValueWithOrigin>::const_iterator
- it = this->IncludeDirectoriesEntries.begin(),
- end = this->IncludeDirectoriesEntries.end();
- it != end; ++it)
- {
- output += sep;
- output += it->Value;
- sep = ";";
- }
+ output = cmJoin(this->IncludeDirectoriesEntries, ";");
return output.c_str();
}
else if (prop == "COMPILE_OPTIONS")
{
- std::string sep;
- for (std::vector<cmValueWithOrigin>::const_iterator
- it = this->CompileOptionsEntries.begin(),
- end = this->CompileOptionsEntries.end();
- it != end; ++it)
- {
- output += sep;
- output += it->Value;
- sep = ";";
- }
+ output = cmJoin(this->CompileOptionsEntries, ";");
return output.c_str();
}
else if (prop == "COMPILE_DEFINITIONS")
{
- std::string sep;
- for (std::vector<cmValueWithOrigin>::const_iterator
- it = this->CompileDefinitionsEntries.begin(),
- end = this->CompileDefinitionsEntries.end();
- it != end; ++it)
- {
- output += sep;
- output += it->Value;
- sep = ";";
- }
+ output = cmJoin(this->CompileDefinitionsEntries, ";");
return output.c_str();
}
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 783658d..57dcdb6 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -842,9 +842,12 @@ protected:
std::vector<std::string> HeaderFileExtensions;
std::string DefineFlags;
- std::vector<cmValueWithOrigin> IncludeDirectoriesEntries;
- std::vector<cmValueWithOrigin> CompileOptionsEntries;
- std::vector<cmValueWithOrigin> CompileDefinitionsEntries;
+ std::vector<std::string> IncludeDirectoriesEntries;
+ std::vector<cmListFileBacktrace> IncludeDirectoriesEntryBacktraces;
+ std::vector<std::string> CompileOptionsEntries;
+ std::vector<cmListFileBacktrace> CompileOptionsEntryBacktraces;
+ std::vector<std::string> CompileDefinitionsEntries;
+ std::vector<cmListFileBacktrace> CompileDefinitionsEntryBacktraces;
// Track the value of the computed DEFINITIONS property.
void AddDefineFlag(const char*, std::string&);
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0632b9a2726aeb20eec1796b62cc5b104a325ac9
commit 0632b9a2726aeb20eec1796b62cc5b104a325ac9
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 22:58:30 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmMakefile: Out of line some API.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index e4ecd1f..d5775fb 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -273,6 +273,21 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
}
}
+std::vector<cmValueWithOrigin> cmMakefile::GetIncludeDirectoriesEntries() const
+{
+ return this->IncludeDirectoriesEntries;
+}
+
+std::vector<cmValueWithOrigin> cmMakefile::GetCompileOptionsEntries() const
+{
+ return this->CompileOptionsEntries;
+}
+
+std::vector<cmValueWithOrigin> cmMakefile::GetCompileDefinitionsEntries() const
+{
+ return this->CompileDefinitionsEntries;
+}
+
//----------------------------------------------------------------------------
cmListFileBacktrace cmMakefile::GetBacktrace() const
{
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index d9dd466..783658d 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -746,18 +746,9 @@ public:
/** Set whether or not to report a CMP0000 violation. */
void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
- std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const
- {
- return this->IncludeDirectoriesEntries;
- }
- std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const
- {
- return this->CompileOptionsEntries;
- }
- std::vector<cmValueWithOrigin> GetCompileDefinitionsEntries() const
- {
- return this->CompileDefinitionsEntries;
- }
+ std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const;
+ std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const;
+ std::vector<cmValueWithOrigin> GetCompileDefinitionsEntries() const;
bool IsConfigured() const { return this->Configured; }
void SetConfigured(){ this->Configured = true; }
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a50492d800abc6287c35ea77ea29e19994376e29
commit a50492d800abc6287c35ea77ea29e19994376e29
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 8 22:57:54 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmMakefile: Remove some references from APIs.
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 2fc4d78..d9dd466 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -746,15 +746,15 @@ public:
/** Set whether or not to report a CMP0000 violation. */
void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; }
- const std::vector<cmValueWithOrigin>& GetIncludeDirectoriesEntries() const
+ std::vector<cmValueWithOrigin> GetIncludeDirectoriesEntries() const
{
return this->IncludeDirectoriesEntries;
}
- const std::vector<cmValueWithOrigin>& GetCompileOptionsEntries() const
+ std::vector<cmValueWithOrigin> GetCompileOptionsEntries() const
{
return this->CompileOptionsEntries;
}
- const std::vector<cmValueWithOrigin>& GetCompileDefinitionsEntries() const
+ std::vector<cmValueWithOrigin> GetCompileDefinitionsEntries() const
{
return this->CompileDefinitionsEntries;
}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3abae9fdabfd8ae919a08321c645bb63584773f6
commit 3abae9fdabfd8ae919a08321c645bb63584773f6
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 18 11:09:20 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmAlgorithms: Add some convenient typedefs.
diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index a4447ad..e510fcf 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -178,6 +178,12 @@ private:
const_iterator End;
};
+typedef cmRange<std::vector<std::string>::const_iterator> cmStringRange;
+
+class cmListFileBacktrace;
+typedef
+cmRange<std::vector<cmListFileBacktrace>::const_iterator> cmBacktraceRange;
+
template<typename Iter1, typename Iter2>
cmRange<Iter1> cmMakeRange(Iter1 begin, Iter2 end)
{
diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h
index 0afd7f5..f153bf2 100644
--- a/Source/cmListFileCache.h
+++ b/Source/cmListFileCache.h
@@ -14,6 +14,7 @@
#include "cmStandardIncludes.h"
+#include "cmAlgorithms.h"
#include "cmState.h"
/** \class cmListFileCache
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f866c382384da1e9fba1c3dacd14b90d48475cc
commit 4f866c382384da1e9fba1c3dacd14b90d48475cc
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 18 10:47:04 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmAlgorithms: Move Range type out of private namespace.
diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 5013e74..a4447ad 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -122,35 +122,6 @@ struct DefaultDeleter<Range, /* valueTypeIsPair = */ true>
}
};
-template<typename const_iterator_>
-struct Range
-{
- typedef const_iterator_ const_iterator;
- typedef typename std::iterator_traits<const_iterator>::value_type value_type;
- typedef typename std::iterator_traits<const_iterator>::difference_type
- difference_type;
- Range(const_iterator begin_, const_iterator end_)
- : Begin(begin_), End(end_) {}
- const_iterator begin() const { return Begin; }
- const_iterator end() const { return End; }
- bool empty() const { return std::distance(Begin, End) == 0; }
- difference_type size() const { return std::distance(Begin, End); }
- Range& advance(cmIML_INT_intptr_t amount)
- {
- std::advance(Begin, amount);
- return *this;
- }
-
- Range& retreat(cmIML_INT_intptr_t amount)
- {
- std::advance(End, -amount);
- return *this;
- }
-private:
- const_iterator Begin;
- const_iterator End;
-};
-
template<typename FwdIt>
FwdIt RemoveN(FwdIt i1, FwdIt i2, size_t n)
{
@@ -178,17 +149,46 @@ private:
}
+template<typename const_iterator_>
+struct cmRange
+{
+ typedef const_iterator_ const_iterator;
+ typedef typename std::iterator_traits<const_iterator>::value_type value_type;
+ typedef typename std::iterator_traits<const_iterator>::difference_type
+ difference_type;
+ cmRange(const_iterator begin_, const_iterator end_)
+ : Begin(begin_), End(end_) {}
+ const_iterator begin() const { return Begin; }
+ const_iterator end() const { return End; }
+ bool empty() const { return std::distance(Begin, End) == 0; }
+ difference_type size() const { return std::distance(Begin, End); }
+ cmRange& advance(cmIML_INT_intptr_t amount)
+ {
+ std::advance(Begin, amount);
+ return *this;
+ }
+
+ cmRange& retreat(cmIML_INT_intptr_t amount)
+ {
+ std::advance(End, -amount);
+ return *this;
+ }
+private:
+ const_iterator Begin;
+ const_iterator End;
+};
+
template<typename Iter1, typename Iter2>
-ContainerAlgorithms::Range<Iter1> cmMakeRange(Iter1 begin, Iter2 end)
+cmRange<Iter1> cmMakeRange(Iter1 begin, Iter2 end)
{
- return ContainerAlgorithms::Range<Iter1>(begin, end);
+ return cmRange<Iter1>(begin, end);
}
template<typename Range>
-ContainerAlgorithms::Range<typename Range::const_iterator>
+cmRange<typename Range::const_iterator>
cmMakeRange(Range const& range)
{
- return ContainerAlgorithms::Range<typename Range::const_iterator>(
+ return cmRange<typename Range::const_iterator>(
range.begin(), range.end());
}
@@ -350,10 +350,10 @@ typename Range::const_iterator cmFindNot(Range const& r, T const& t)
}
template<typename Range>
-ContainerAlgorithms::Range<typename Range::const_reverse_iterator>
+cmRange<typename Range::const_reverse_iterator>
cmReverseRange(Range const& range)
{
- return ContainerAlgorithms::Range<typename Range::const_reverse_iterator>(
+ return cmRange<typename Range::const_reverse_iterator>(
range.rbegin(), range.rend());
}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c4d260c8e4205a05e8a1decb76e02c3d36a94793
commit c4d260c8e4205a05e8a1decb76e02c3d36a94793
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 18 10:45:18 2015 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Jul 21 19:56:43 2015 +0200
cmAlgorithms: Rename cmRange to cmMakeRange.
diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index f117475..5013e74 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -179,14 +179,14 @@ private:
}
template<typename Iter1, typename Iter2>
-ContainerAlgorithms::Range<Iter1> cmRange(Iter1 begin, Iter2 end)
+ContainerAlgorithms::Range<Iter1> cmMakeRange(Iter1 begin, Iter2 end)
{
return ContainerAlgorithms::Range<Iter1>(begin, end);
}
template<typename Range>
ContainerAlgorithms::Range<typename Range::const_iterator>
-cmRange(Range const& range)
+cmMakeRange(Range const& range)
{
return ContainerAlgorithms::Range<typename Range::const_iterator>(
range.begin(), range.end());
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 3d84f38..0daed66 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -270,7 +270,7 @@ bool cmFileCommand::HandleWriteCommand(std::vector<std::string> const& args,
this->SetError(error);
return false;
}
- std::string message = cmJoin(cmRange(i, args.end()), std::string());
+ std::string message = cmJoin(cmMakeRange(i, args.end()), std::string());
file << message;
file.close();
if(mode)
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index add06a7..5d66014 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -170,7 +170,7 @@ bool cmFindBase::ParseArguments(std::vector<std::string> const& argsIn)
else
{
this->VariableDocumentation += "one of the ";
- this->VariableDocumentation += cmJoin(cmRange(this->Names).retreat(1),
+ this->VariableDocumentation += cmJoin(cmMakeRange(this->Names).retreat(1),
", ");
this->VariableDocumentation += " or "
+ this->Names[this->Names.size() - 1] + " libraries be found";
diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx
index 78853ce..c883ad7 100644
--- a/Source/cmFunctionCommand.cxx
+++ b/Source/cmFunctionCommand.cxx
@@ -125,7 +125,7 @@ bool cmFunctionHelperCommand::InvokeInitialPass
std::string argvDef = cmJoin(expandedArgs, ";");
std::vector<std::string>::const_iterator eit
= expandedArgs.begin() + (this->Args.size()-1);
- std::string argnDef = cmJoin(cmRange(eit, expandedArgs.end()), ";");
+ std::string argnDef = cmJoin(cmMakeRange(eit, expandedArgs.end()), ";");
this->Makefile->AddDefinition("ARGV", argvDef.c_str());
this->Makefile->MarkVariableAsUsed("ARGV");
this->Makefile->AddDefinition("ARGN", argnDef.c_str());
diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx
index f96b4a8..6041fb7 100644
--- a/Source/cmListCommand.cxx
+++ b/Source/cmListCommand.cxx
@@ -247,7 +247,7 @@ bool cmListCommand::HandleAppendCommand(std::vector<std::string> const& args)
{
listString += ";";
}
- listString += cmJoin(cmRange(args).advance(2), ";");
+ listString += cmJoin(cmMakeRange(args).advance(2), ";");
this->Makefile->AddDefinition(listName, listString.c_str());
return true;
@@ -361,9 +361,9 @@ bool cmListCommand
std::vector<std::string>::const_iterator remBegin = remove.begin();
std::vector<std::string>::const_iterator argsEnd =
- cmRemoveMatching(varArgsExpanded, cmRange(remBegin, remEnd));
+ cmRemoveMatching(varArgsExpanded, cmMakeRange(remBegin, remEnd));
std::vector<std::string>::const_iterator argsBegin = varArgsExpanded.begin();
- std::string value = cmJoin(cmRange(argsBegin, argsEnd), ";");
+ std::string value = cmJoin(cmMakeRange(argsBegin, argsEnd), ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
}
@@ -421,7 +421,7 @@ bool cmListCommand
cmRemoveDuplicates(varArgsExpanded);
std::vector<std::string>::const_iterator argsBegin =
varArgsExpanded.begin();
- std::string value = cmJoin(cmRange(argsBegin, argsEnd), ";");
+ std::string value = cmJoin(cmMakeRange(argsBegin, argsEnd), ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
@@ -509,9 +509,9 @@ bool cmListCommand::HandleRemoveAtCommand(
std::vector<size_t>::const_iterator remBegin = removed.begin();
std::vector<std::string>::const_iterator argsEnd =
- cmRemoveIndices(varArgsExpanded, cmRange(remBegin, remEnd));
+ cmRemoveIndices(varArgsExpanded, cmMakeRange(remBegin, remEnd));
std::vector<std::string>::const_iterator argsBegin = varArgsExpanded.begin();
- std::string value = cmJoin(cmRange(argsBegin, argsEnd), ";");
+ std::string value = cmJoin(cmMakeRange(argsBegin, argsEnd), ";");
this->Makefile->AddDefinition(listName, value.c_str());
return true;
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 077d4d9..ca4d359 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -2259,7 +2259,7 @@ cmLocalUnixMakefileGenerator3::ConvertToQuotedOutputPath(const char* p,
std::string());
std::vector<std::string>::const_iterator compStart
= components.begin() + 1;
- result += cmJoin(cmRange(compStart, compEnd), slash);
+ result += cmJoin(cmMakeRange(compStart, compEnd), slash);
// Only the last component can be empty to avoid double slashes.
result += slash;
result += components.back();
diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx
index fa5a623..e4026b0 100644
--- a/Source/cmMacroCommand.cxx
+++ b/Source/cmMacroCommand.cxx
@@ -107,7 +107,7 @@ bool cmMacroHelperCommand::InvokeInitialPass
std::vector<std::string>::const_iterator eit
= expandedArgs.begin() + (this->Args.size() - 1);
- std::string expandedArgn = cmJoin(cmRange(eit, expandedArgs.end()), ";");
+ std::string expandedArgn = cmJoin(cmMakeRange(eit, expandedArgs.end()), ";");
std::string expandedArgv = cmJoin(expandedArgs, ";");
std::vector<std::string> variables;
variables.reserve(this->Args.size() - 1);
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index ae69b24..e4ecd1f 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1427,7 +1427,7 @@ bool cmMakefile::ParseDefineFlag(std::string const& def, bool remove)
std::remove(defs.begin(), defs.end(), define);
std::vector<std::string>::const_iterator defBegin =
defs.begin();
- std::string ndefs = cmJoin(cmRange(defBegin, defEnd), ";");
+ std::string ndefs = cmJoin(cmMakeRange(defBegin, defEnd), ";");
// Store the new list.
this->SetProperty("COMPILE_DEFINITIONS", ndefs.c_str());
diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index 0449c50..2854a82 100644
--- a/Source/cmMessageCommand.cxx
+++ b/Source/cmMessageCommand.cxx
@@ -69,7 +69,7 @@ bool cmMessageCommand
++i;
}
- std::string message = cmJoin(cmRange(i, args.end()), std::string());
+ std::string message = cmJoin(cmMakeRange(i, args.end()), std::string());
if (type != cmake::MESSAGE)
{
diff --git a/Source/cmOutputConverter.cxx b/Source/cmOutputConverter.cxx
index 91f3c0a..7be5b3f 100644
--- a/Source/cmOutputConverter.cxx
+++ b/Source/cmOutputConverter.cxx
@@ -293,7 +293,7 @@ cmOutputConverter::ConvertToRelativePath(const std::vector<std::string>& local,
{
relative += "/";
}
- relative += cmJoin(cmRange(remote).advance(common), "/");
+ relative += cmJoin(cmMakeRange(remote).advance(common), "/");
// Finally return the path.
return relative;
diff --git a/Source/cmSetCommand.cxx b/Source/cmSetCommand.cxx
index bf9f42c..306276b 100644
--- a/Source/cmSetCommand.cxx
+++ b/Source/cmSetCommand.cxx
@@ -108,7 +108,7 @@ bool cmSetCommand
}
// collect any values into a single semi-colon separated value list
- value = cmJoin(cmRange(args).advance(1).retreat(ignoreLastArgs), ";");
+ value = cmJoin(cmMakeRange(args).advance(1).retreat(ignoreLastArgs), ";");
if (parentScope)
{
diff --git a/Source/cmStringCommand.cxx b/Source/cmStringCommand.cxx
index efc1f16..649fb39 100644
--- a/Source/cmStringCommand.cxx
+++ b/Source/cmStringCommand.cxx
@@ -319,7 +319,7 @@ bool cmStringCommand::RegexMatch(std::vector<std::string> const& args)
}
// Concatenate all the last arguments together.
- std::string input = cmJoin(cmRange(args).advance(4), std::string());
+ std::string input = cmJoin(cmMakeRange(args).advance(4), std::string());
// Scan through the input for all matches.
std::string output;
@@ -365,7 +365,7 @@ bool cmStringCommand::RegexMatchAll(std::vector<std::string> const& args)
}
// Concatenate all the last arguments together.
- std::string input = cmJoin(cmRange(args).advance(4), std::string());
+ std::string input = cmJoin(cmMakeRange(args).advance(4), std::string());
// Scan through the input for all matches.
std::string output;
@@ -465,7 +465,7 @@ bool cmStringCommand::RegexReplace(std::vector<std::string> const& args)
}
// Concatenate all the last arguments together.
- std::string input = cmJoin(cmRange(args).advance(5), std::string());
+ std::string input = cmJoin(cmMakeRange(args).advance(5), std::string());
// Scan through the input for all matches.
std::string output;
@@ -665,7 +665,7 @@ bool cmStringCommand::HandleReplaceCommand(std::vector<std::string> const&
const std::string& replaceExpression = args[2];
const std::string& variableName = args[3];
- std::string input = cmJoin(cmRange(args).advance(4), std::string());
+ std::string input = cmJoin(cmMakeRange(args).advance(4), std::string());
cmsys::SystemTools::ReplaceString(input, matchExpression.c_str(),
replaceExpression.c_str());
@@ -756,7 +756,7 @@ bool cmStringCommand::HandleAppendCommand(std::vector<std::string> const& args)
{
value = oldValue;
}
- value += cmJoin(cmRange(args).advance(2), std::string());
+ value += cmJoin(cmMakeRange(args).advance(2), std::string());
this->Makefile->AddDefinition(variable, value.c_str());
return true;
}
@@ -772,7 +772,7 @@ bool cmStringCommand
}
std::string const& variableName = args[1];
- std::string value = cmJoin(cmRange(args).advance(2), std::string());
+ std::string value = cmJoin(cmMakeRange(args).advance(2), std::string());
this->Makefile->AddDefinition(variableName, value.c_str());
return true;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 46e9ed4..ac39387 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6674,7 +6674,7 @@ void cmTarget::CheckPropertyCompatibility(cmComputeLinkInformation *info,
}
std::sort(props.begin(), props.end());
- std::string propsString = cmJoin(cmRange(props).retreat(1), ", ");
+ std::string propsString = cmJoin(cmMakeRange(props).retreat(1), ", ");
propsString += " and the " + props.back();
std::ostringstream e;
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 63838b4..e89eb12 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -335,14 +335,14 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
// Echo string
else if (args[1] == "echo" )
{
- std::cout << cmJoin(cmRange(args).advance(2), " ") << std::endl;
+ std::cout << cmJoin(cmMakeRange(args).advance(2), " ") << std::endl;
return 0;
}
// Echo string no new line
else if (args[1] == "echo_append" )
{
- std::cout << cmJoin(cmRange(args).advance(2), " ");
+ std::cout << cmJoin(cmMakeRange(args).advance(2), " ");
return 0;
}
@@ -511,7 +511,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
// Clock command
else if (args[1] == "time" && args.size() > 2)
{
- std::string command = cmJoin(cmRange(args).advance(2), " ");
+ std::string command = cmJoin(cmMakeRange(args).advance(2), " ");
clock_t clock_start, clock_finish;
time_t time_start, time_finish;
@@ -572,7 +572,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
return 1;
}
- std::string command = cmWrap('"', cmRange(args).advance(3), '"', " ");
+ std::string command = cmWrap('"', cmMakeRange(args).advance(3), '"', " ");
int retval = 0;
int timeout = 0;
if ( cmSystemTools::RunSingleCommand(command.c_str(), 0, 0, &retval,
-----------------------------------------------------------------------
Summary of changes:
Source/cmAlgorithms.h | 78 ++++---
Source/cmFileCommand.cxx | 2 +-
Source/cmFindBase.cxx | 2 +-
Source/cmFunctionCommand.cxx | 2 +-
Source/cmGlobalGenerator.cxx | 12 +-
Source/cmListCommand.cxx | 12 +-
Source/cmListFileCache.h | 1 +
Source/cmLocalUnixMakefileGenerator3.cxx | 2 +-
Source/cmMacroCommand.cxx | 2 +-
Source/cmMakefile.cxx | 124 +++++-----
Source/cmMakefile.h | 23 +-
Source/cmMessageCommand.cxx | 2 +-
Source/cmOutputConverter.cxx | 2 +-
Source/cmSetCommand.cxx | 2 +-
Source/cmState.cxx | 312 +++++++++++++++++++++++++-
Source/cmState.h | 29 +++
Source/cmStringCommand.cxx | 12 +-
Source/cmTarget.cxx | 53 +++--
Source/cmTarget.h | 11 +-
Source/cmTargetCompileOptionsCommand.cxx | 3 +-
Source/cmTargetIncludeDirectoriesCommand.cxx | 3 +-
Source/cmcmd.cxx | 8 +-
22 files changed, 518 insertions(+), 179 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list