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:
parent
eff67f3061
commit
852be8a520
|
@ -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 =
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue