ENH: minor perf improvement
This commit is contained in:
parent
0f8282fab1
commit
46e5b9afe2
|
@ -54,6 +54,13 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
|
|||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmLocalUnixMakefileGenerator3::Configure()
|
||||
{
|
||||
this->ComputeHomeRelativeOutputPath();
|
||||
this->cmLocalGenerator::Configure();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmLocalUnixMakefileGenerator3::Generate()
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue