|
|
@@ -392,7 +392,8 @@ void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target)
|
|
|
std::map<std::string, std::string> configUicOptions;
|
|
|
|
|
|
if (target->GetPropertyAsBool("AUTOMOC")
|
|
|
- || target->GetPropertyAsBool("AUTOUIC"))
|
|
|
+ || target->GetPropertyAsBool("AUTOUIC")
|
|
|
+ || target->GetPropertyAsBool("AUTORCC"))
|
|
|
{
|
|
|
this->SetupSourceFiles(target);
|
|
|
}
|
|
|
@@ -1304,8 +1305,8 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
|
|
|
const std::vector<std::string>& headerExtensions =
|
|
|
makefile->GetHeaderExtensions();
|
|
|
|
|
|
- std::map<std::string, std::string> includedUis;
|
|
|
- std::map<std::string, std::string> skippedUis;
|
|
|
+ std::map<std::string, std::vector<std::string> > includedUis;
|
|
|
+ std::map<std::string, std::vector<std::string> > skippedUis;
|
|
|
std::vector<std::string> uicSkipped;
|
|
|
cmSystemTools::ExpandListArgument(this->SkipUic, uicSkipped);
|
|
|
|
|
|
@@ -1315,7 +1316,7 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
|
|
|
{
|
|
|
const bool skipUic = std::find(uicSkipped.begin(), uicSkipped.end(), *it)
|
|
|
!= uicSkipped.end();
|
|
|
- std::map<std::string, std::string>& uiFiles
|
|
|
+ std::map<std::string, std::vector<std::string> >& uiFiles
|
|
|
= skipUic ? skippedUis : includedUis;
|
|
|
const std::string &absFilename = *it;
|
|
|
if (this->Verbose)
|
|
|
@@ -1376,12 +1377,17 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
|
|
|
{
|
|
|
this->GenerateMoc(it->first, it->second);
|
|
|
}
|
|
|
- for(std::map<std::string, std::string>::const_iterator
|
|
|
+ for(std::map<std::string, std::vector<std::string> >::const_iterator
|
|
|
it = includedUis.begin();
|
|
|
it != includedUis.end();
|
|
|
++it)
|
|
|
{
|
|
|
- this->GenerateUi(it->first, it->second);
|
|
|
+ for (std::vector<std::string>::const_iterator nit = it->second.begin();
|
|
|
+ nit != it->second.end();
|
|
|
+ ++nit)
|
|
|
+ {
|
|
|
+ this->GenerateUi(it->first, *nit);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if(!this->RccExecutable.empty())
|
|
|
@@ -1456,9 +1462,9 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
|
|
|
|
|
|
|
|
|
void cmQtAutoGenerators::ParseCppFile(const std::string& absFilename,
|
|
|
- const std::vector<std::string>& headerExtensions,
|
|
|
- std::map<std::string, std::string>& includedMocs,
|
|
|
- std::map<std::string, std::string> &includedUis)
|
|
|
+ const std::vector<std::string>& headerExtensions,
|
|
|
+ std::map<std::string, std::string>& includedMocs,
|
|
|
+ std::map<std::string, std::vector<std::string> > &includedUis)
|
|
|
{
|
|
|
cmsys::RegularExpression mocIncludeRegExp(
|
|
|
"[\n][ \t]*#[ \t]*include[ \t]+"
|
|
|
@@ -1644,9 +1650,9 @@ void cmQtAutoGenerators::ParseCppFile(const std::string& absFilename,
|
|
|
|
|
|
|
|
|
void cmQtAutoGenerators::StrictParseCppFile(const std::string& absFilename,
|
|
|
- const std::vector<std::string>& headerExtensions,
|
|
|
- std::map<std::string, std::string>& includedMocs,
|
|
|
- std::map<std::string, std::string>& includedUis)
|
|
|
+ const std::vector<std::string>& headerExtensions,
|
|
|
+ std::map<std::string, std::string>& includedMocs,
|
|
|
+ std::map<std::string, std::vector<std::string> >& includedUis)
|
|
|
{
|
|
|
cmsys::RegularExpression mocIncludeRegExp(
|
|
|
"[\n][ \t]*#[ \t]*include[ \t]+"
|
|
|
@@ -1764,7 +1770,7 @@ void cmQtAutoGenerators::StrictParseCppFile(const std::string& absFilename,
|
|
|
|
|
|
|
|
|
void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
|
|
|
- std::map<std::string, std::string>& includedUis)
|
|
|
+ std::map<std::string, std::vector<std::string> >& includedUis)
|
|
|
{
|
|
|
if (this->UicExecutable.empty())
|
|
|
{
|
|
|
@@ -1782,8 +1788,8 @@ void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
|
|
|
|
|
|
|
|
|
void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
|
|
|
- const std::string& contentsString,
|
|
|
- std::map<std::string, std::string>& includedUis)
|
|
|
+ const std::string& contentsString,
|
|
|
+ std::map<std::string, std::vector<std::string> >& includedUis)
|
|
|
{
|
|
|
if (this->UicExecutable.empty())
|
|
|
{
|
|
|
@@ -1813,7 +1819,7 @@ void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
|
|
|
// finding the correct header, so we need to remove the ui_ part
|
|
|
basename = basename.substr(3);
|
|
|
|
|
|
- includedUis[realName] = basename;
|
|
|
+ includedUis[realName].push_back(basename);
|
|
|
|
|
|
matchOffset += uiIncludeRegExp.end();
|
|
|
} while(uiIncludeRegExp.find(contentsString.c_str() + matchOffset));
|
|
|
@@ -1859,9 +1865,9 @@ cmQtAutoGenerators::SearchHeadersForCppFile(const std::string& absFilename,
|
|
|
|
|
|
|
|
|
void cmQtAutoGenerators::ParseHeaders(const std::set<std::string>& absHeaders,
|
|
|
- const std::map<std::string, std::string>& includedMocs,
|
|
|
- std::map<std::string, std::string>& notIncludedMocs,
|
|
|
- std::map<std::string, std::string>& includedUis)
|
|
|
+ const std::map<std::string, std::string>& includedMocs,
|
|
|
+ std::map<std::string, std::string>& notIncludedMocs,
|
|
|
+ std::map<std::string, std::vector<std::string> >& includedUis)
|
|
|
{
|
|
|
for(std::set<std::string>::const_iterator hIt=absHeaders.begin();
|
|
|
hIt!=absHeaders.end();
|