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.

This commit is contained in:
Brad King 2001-08-23 16:28:29 -04:00
parent eff67f3061
commit 852be8a520
2 changed files with 11 additions and 4 deletions

View File

@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "cmMakeDepend.h" #include "cmMakeDepend.h"
cmCableWrapTclCommand::cmCableWrapTclCommand(): cmCableWrapTclCommand::cmCableWrapTclCommand():
m_CableClassSet(NULL) m_CableClassSet(NULL), m_MakeDepend(new cmMakeDepend)
{ {
} }
@ -55,6 +55,7 @@ cmCableWrapTclCommand::~cmCableWrapTclCommand()
{ {
delete m_CableClassSet; delete m_CableClassSet;
} }
delete m_MakeDepend;
} }
@ -113,6 +114,9 @@ bool cmCableWrapTclCommand::InitialPass(std::vector<std::string>& args)
*/ */
void cmCableWrapTclCommand::GenerateCableFiles() const 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 // Each wrapped class may have an associated "tag" that represents
// an alternative name without funky C++ syntax in it. This makes // 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 // 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); depends.push_back(command);
// Get the dependencies of the file. // Get the dependencies of the file.
cmMakeDepend md;
md.SetMakefile(m_Makefile);
const cmDependInformation* dependInfo = const cmDependInformation* dependInfo =
md.FindDependencies(classCxxName.c_str()); m_MakeDepend->FindDependencies(classCxxName.c_str());
if(dependInfo) if(dependInfo)
{ {
for(cmDependInformation::DependencySet::const_iterator d = for(cmDependInformation::DependencySet::const_iterator d =

View File

@ -45,6 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "cmCommand.h" #include "cmCommand.h"
#include "cmCableClassSet.h" #include "cmCableClassSet.h"
class cmMakeDepend;
/** \class cmCableWrapTclCommand /** \class cmCableWrapTclCommand
* \brief Define a command that wraps a set of classes in Tcl. * \brief Define a command that wraps a set of classes in Tcl.
*/ */
@ -119,6 +121,9 @@ private:
* added to the makefile as another set. * added to the makefile as another set.
*/ */
cmCableClassSet* m_CableClassSet; cmCableClassSet* m_CableClassSet;
///! The dependency generator.
cmMakeDepend* m_MakeDepend;
}; };
#endif #endif