parent
a65011baf1
commit
d1c0a5fce6
|
@ -1,3 +1,8 @@
|
||||||
|
#include "cmGlobalGenerator.h"
|
||||||
|
#include "cmLocalGenerator.h"
|
||||||
|
#include "cmMakefile.h"
|
||||||
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
#include "cmQtAutomoc.h"
|
#include "cmQtAutomoc.h"
|
||||||
|
|
||||||
cmQtAutomoc::cmQtAutomoc()
|
cmQtAutomoc::cmQtAutomoc()
|
||||||
|
@ -6,5 +11,80 @@ cmQtAutomoc::cmQtAutomoc()
|
||||||
|
|
||||||
|
|
||||||
bool cmQtAutomoc::Run(const char* targetDirectory)
|
bool cmQtAutomoc::Run(const char* targetDirectory)
|
||||||
|
{
|
||||||
|
cmake cm;
|
||||||
|
cmGlobalGenerator* gg = this->CreateGlobalGenerator(&cm, targetDirectory);
|
||||||
|
cmMakefile* makefile = gg->GetCurrentLocalGenerator()->GetMakefile();
|
||||||
|
|
||||||
|
this->ReadAutomocInfoFile(makefile, targetDirectory);
|
||||||
|
this->ReadOldMocDefinitionsFile(makefile, targetDirectory);
|
||||||
|
|
||||||
|
delete gg;
|
||||||
|
gg = NULL;
|
||||||
|
makefile = NULL;
|
||||||
|
|
||||||
|
if (this->QtMajorVersion == "4")
|
||||||
|
{
|
||||||
|
this->RunAutomocQt4();
|
||||||
|
}
|
||||||
|
|
||||||
|
this->WriteOldMocDefinitionsFile(targetDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cmGlobalGenerator* cmQtAutomoc::CreateGlobalGenerator(cmake* cm,
|
||||||
|
const char* targetDirectory)
|
||||||
|
{
|
||||||
|
cmGlobalGenerator* gg = new cmGlobalGenerator();
|
||||||
|
gg->SetCMakeInstance(cm);
|
||||||
|
|
||||||
|
cmLocalGenerator* lg = gg->CreateLocalGenerator();
|
||||||
|
lg->GetMakefile()->SetHomeOutputDirectory(targetDirectory);
|
||||||
|
lg->GetMakefile()->SetStartOutputDirectory(targetDirectory);
|
||||||
|
lg->GetMakefile()->SetHomeDirectory(targetDirectory);
|
||||||
|
lg->GetMakefile()->SetStartDirectory(targetDirectory);
|
||||||
|
gg->SetCurrentLocalGenerator(lg);
|
||||||
|
|
||||||
|
return gg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool cmQtAutomoc::ReadAutomocInfoFile(cmMakefile* makefile,
|
||||||
|
const char* targetDirectory)
|
||||||
|
{
|
||||||
|
std::string filename(cmSystemTools::CollapseFullPath(targetDirectory));
|
||||||
|
cmSystemTools::ConvertToUnixSlashes(filename);
|
||||||
|
filename += "/AutomocInfo.cmake";
|
||||||
|
|
||||||
|
if (!makefile->ReadListFile(0, filename.c_str()))
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("Error processing file:", filename.c_str());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool cmQtAutomoc::ReadOldMocDefinitionsFile(cmMakefile* makefile,
|
||||||
|
const char* targetDirectory)
|
||||||
|
{
|
||||||
|
std::string filename(cmSystemTools::CollapseFullPath(targetDirectory));
|
||||||
|
cmSystemTools::ConvertToUnixSlashes(filename);
|
||||||
|
filename += "/AutomocOldMocDefinitions.cmake";
|
||||||
|
|
||||||
|
if (!makefile->ReadListFile(0, filename.c_str()))
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("Error processing file:", filename.c_str());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool cmQtAutomoc::RunAutomocQt4()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void cmQtAutomoc::WriteOldMocDefinitionsFile(const char* targetDirectory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,29 @@
|
||||||
#ifndef cmQtAutomoc_h
|
#ifndef cmQtAutomoc_h
|
||||||
#define cmQtAutomoc_h
|
#define cmQtAutomoc_h
|
||||||
|
|
||||||
|
class cmGlobalGenerator;
|
||||||
|
class cmMakefile;
|
||||||
|
|
||||||
class cmQtAutomoc
|
class cmQtAutomoc
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
cmQtAutomoc();
|
cmQtAutomoc();
|
||||||
bool Run(const char* targetDirectory);
|
bool Run(const char* targetDirectory);
|
||||||
|
|
||||||
|
private:
|
||||||
|
cmGlobalGenerator* CreateGlobalGenerator(cmake* cm,
|
||||||
|
const char* targetDirectory);
|
||||||
|
|
||||||
|
bool ReadAutomocInfoFile(cmMakefile* makefile,
|
||||||
|
const char* targetDirectory);
|
||||||
|
bool ReadOldMocDefinitionsFile(cmMakefile* makefile,
|
||||||
|
const char* targetDirectory);
|
||||||
|
void WriteOldMocDefinitionsFile(const char* targetDirectory);
|
||||||
|
|
||||||
|
bool RunAutomocQt4();
|
||||||
|
|
||||||
|
std::string QtMajorVersion;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1578,7 +1578,8 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
|
||||||
else if (args[1] == "cmake_automoc")
|
else if (args[1] == "cmake_automoc")
|
||||||
{
|
{
|
||||||
cmQtAutomoc automoc;
|
cmQtAutomoc automoc;
|
||||||
automoc.Run("target directory");
|
automoc.Run(args[2].c_str());
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tar files
|
// Tar files
|
||||||
|
|
Loading…
Reference in New Issue