From 852be8a520a8a03268b499642c5257675b9ad7f2 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 23 Aug 2001 16:28:29 -0400 Subject: [PATCH] ENH: Each cmCableWrapTclCommand instance now uses a single cmMakeDepend object for dependencies for all the gccxml input files it generates. This should significantly improve generation time. --- Source/cmCableWrapTclCommand.cxx | 10 ++++++---- Source/cmCableWrapTclCommand.h | 5 +++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/cmCableWrapTclCommand.cxx b/Source/cmCableWrapTclCommand.cxx index 720fa071f..03ee44aea 100644 --- a/Source/cmCableWrapTclCommand.cxx +++ b/Source/cmCableWrapTclCommand.cxx @@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "cmMakeDepend.h" cmCableWrapTclCommand::cmCableWrapTclCommand(): - m_CableClassSet(NULL) + m_CableClassSet(NULL), m_MakeDepend(new cmMakeDepend) { } @@ -55,6 +55,7 @@ cmCableWrapTclCommand::~cmCableWrapTclCommand() { delete m_CableClassSet; } + delete m_MakeDepend; } @@ -113,6 +114,9 @@ bool cmCableWrapTclCommand::InitialPass(std::vector& args) */ void cmCableWrapTclCommand::GenerateCableFiles() const { + // Make sure the dependency generator is ready to go. + m_MakeDepend->SetMakefile(m_Makefile); + // Each wrapped class may have an associated "tag" that represents // an alternative name without funky C++ syntax in it. This makes // it easier to refer to the class in a Tcl script. We will also @@ -320,10 +324,8 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name, depends.push_back(command); // Get the dependencies of the file. - cmMakeDepend md; - md.SetMakefile(m_Makefile); const cmDependInformation* dependInfo = - md.FindDependencies(classCxxName.c_str()); + m_MakeDepend->FindDependencies(classCxxName.c_str()); if(dependInfo) { for(cmDependInformation::DependencySet::const_iterator d = diff --git a/Source/cmCableWrapTclCommand.h b/Source/cmCableWrapTclCommand.h index bb35ac8b5..ae5071653 100644 --- a/Source/cmCableWrapTclCommand.h +++ b/Source/cmCableWrapTclCommand.h @@ -45,6 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "cmCommand.h" #include "cmCableClassSet.h" +class cmMakeDepend; + /** \class cmCableWrapTclCommand * \brief Define a command that wraps a set of classes in Tcl. */ @@ -119,6 +121,9 @@ private: * added to the makefile as another set. */ cmCableClassSet* m_CableClassSet; + + ///! The dependency generator. + cmMakeDepend* m_MakeDepend; }; #endif