summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2005-06-01 17:37:49 (GMT)
committerKen Martin <ken.martin@kitware.com>2005-06-01 17:37:49 (GMT)
commit46e5b9afe2e155aebc4eac0fed80ef98b23a0f7d (patch)
tree63712ca0454c157a123e475e95bc9eee57d8e343 /Source
parent0f8282fab1bd7a52d33914cdf73cb80113b49f7a (diff)
downloadCMake-46e5b9afe2e155aebc4eac0fed80ef98b23a0f7d.zip
CMake-46e5b9afe2e155aebc4eac0fed80ef98b23a0f7d.tar.gz
CMake-46e5b9afe2e155aebc4eac0fed80ef98b23a0f7d.tar.bz2
ENH: minor perf improvement
Diffstat (limited to 'Source')
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx21
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.h11
2 files changed, 26 insertions, 6 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index f6a4816..b6541bd 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -55,6 +55,13 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
}
//----------------------------------------------------------------------------
+void cmLocalUnixMakefileGenerator3::Configure()
+{
+ this->ComputeHomeRelativeOutputPath();
+ this->cmLocalGenerator::Configure();
+}
+
+//----------------------------------------------------------------------------
void cmLocalUnixMakefileGenerator3::Generate()
{
// Setup our configuration variables for this directory.
@@ -259,17 +266,21 @@ void cmLocalUnixMakefileGenerator3::WriteDisclaimer(std::ostream& os)
<< cmMakefile::GetMinorVersion() << "\n\n";
}
-std::string cmLocalUnixMakefileGenerator3::GetHomeRelativeOutputPath()
+void cmLocalUnixMakefileGenerator3::ComputeHomeRelativeOutputPath()
{
// Include the rule file for each object.
- std::string relPath =
+ m_HomeRelativeOutputPath =
cmSystemTools::RelativePath(m_Makefile->GetHomeOutputDirectory(),
m_Makefile->GetStartOutputDirectory());
- if (relPath.size())
+ if (m_HomeRelativeOutputPath.size())
{
- relPath += "/";
+ m_HomeRelativeOutputPath += "/";
}
- return relPath;
+}
+
+const std::string &cmLocalUnixMakefileGenerator3::GetHomeRelativeOutputPath()
+{
+ return m_HomeRelativeOutputPath;
}
//----------------------------------------------------------------------------
diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h
index d107b25..ffeb0b8 100644
--- a/Source/cmLocalUnixMakefileGenerator3.h
+++ b/Source/cmLocalUnixMakefileGenerator3.h
@@ -43,12 +43,18 @@ public:
*/
virtual void Generate();
+ /**
+ * Process the CMakeLists files for this directory to fill in the
+ * m_Makefile ivar
+ */
+ virtual void Configure();
+
/** creates the common disclainer text at the top of each makefile */
void WriteDisclaimer(std::ostream& os);
// this returns the relative path between the HomeOutputDirectory and this
// local generators StartOutputDirectory
- std::string GetHomeRelativeOutputPath();
+ const std::string &GetHomeRelativeOutputPath();
// Write out a make rule
void WriteMakeRule(std::ostream& os,
@@ -312,6 +318,7 @@ protected:
std::string CreateMakeVariable(const char* sin, const char* s2in);
//==========================================================================
+ void ComputeHomeRelativeOutputPath();
private:
std::map<cmStdString, IntegrityCheckSet> m_CheckDependFiles;
@@ -332,6 +339,8 @@ private:
// Flag for whether echo command needs quotes.
bool m_EchoNeedsQuote;
+ std::string m_HomeRelativeOutputPath;
+
// Set of object file names that will be built in this directory.
std::set<cmStdString> m_ObjectFiles;
};