summaryrefslogtreecommitdiffstats
path: root/Source/cmListFileCache.cxx
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2014-03-12 21:59:42 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2014-06-05 16:44:19 (GMT)
commit2a1b2d848693a3860f8e5f179b6c97f8c56abede (patch)
tree7987c9ba6b2be8fa15a6e7c9fe820ce512554f7e /Source/cmListFileCache.cxx
parenta08292059eba4fdded6643b225640ebf559b2dac (diff)
downloadCMake-2a1b2d848693a3860f8e5f179b6c97f8c56abede.zip
CMake-2a1b2d848693a3860f8e5f179b6c97f8c56abede.tar.gz
CMake-2a1b2d848693a3860f8e5f179b6c97f8c56abede.tar.bz2
backtrace: Convert to local paths in IssueMessage
This is the only place we care show the FilePath to the user, so defer the expensive relative path calculation until here.
Diffstat (limited to 'Source/cmListFileCache.cxx')
-rw-r--r--Source/cmListFileCache.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index 34781d3..705666d 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -12,6 +12,7 @@
#include "cmListFileCache.h"
#include "cmListFileLexer.h"
+#include "cmLocalGenerator.h"
#include "cmSystemTools.h"
#include "cmMakefile.h"
#include "cmVersion.h"
@@ -408,6 +409,23 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token,
}
//----------------------------------------------------------------------------
+void cmListFileBacktrace::MakeRelative()
+{
+ if (this->Relative)
+ {
+ return;
+ }
+ for (cmListFileBacktrace::iterator i = this->begin();
+ i != this->end(); ++i)
+ {
+ i->FilePath = this->LocalGenerator->Convert(i->FilePath,
+ cmLocalGenerator::HOME);
+ }
+ this->Relative = true;
+}
+
+
+//----------------------------------------------------------------------------
std::ostream& operator<<(std::ostream& os, cmListFileContext const& lfc)
{
os << lfc.FilePath;