QtAutogen: Move SetupAutoMocTarget method.
This commit is contained in:
parent
f3158e45b8
commit
f75ec6044c
|
@ -130,6 +130,98 @@ static void GetCompileDefinitionsAndDirectories(cmTarget const* target,
|
||||||
defs += cmJoin(defines, ";");
|
defs += cmJoin(defines, ";");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmQtAutoGeneratorInitializer::SetupAutoMocTarget(cmTarget const* target,
|
||||||
|
const std::string &autogenTargetName,
|
||||||
|
std::vector<std::string> const& skipMoc,
|
||||||
|
std::vector<std::string> const& mocHeaders,
|
||||||
|
std::map<std::string, std::string> &configIncludes,
|
||||||
|
std::map<std::string, std::string> &configDefines)
|
||||||
|
{
|
||||||
|
cmMakefile* makefile = target->GetMakefile();
|
||||||
|
|
||||||
|
const char* tmp = target->GetProperty("AUTOMOC_MOC_OPTIONS");
|
||||||
|
std::string _moc_options = (tmp!=0 ? tmp : "");
|
||||||
|
makefile->AddDefinition("_moc_options",
|
||||||
|
cmOutputConverter::EscapeForCMake(_moc_options).c_str());
|
||||||
|
makefile->AddDefinition("_skip_moc",
|
||||||
|
cmOutputConverter::EscapeForCMake(cmJoin(skipMoc, ";")).c_str());
|
||||||
|
makefile->AddDefinition("_moc_headers",
|
||||||
|
cmOutputConverter::EscapeForCMake(cmJoin(mocHeaders, ";")).c_str());
|
||||||
|
bool relaxedMode = makefile->IsOn("CMAKE_AUTOMOC_RELAXED_MODE");
|
||||||
|
makefile->AddDefinition("_moc_relaxed_mode", relaxedMode ? "TRUE" : "FALSE");
|
||||||
|
|
||||||
|
std::string _moc_incs;
|
||||||
|
std::string _moc_compile_defs;
|
||||||
|
std::vector<std::string> configs;
|
||||||
|
const std::string& config = makefile->GetConfigurations(configs);
|
||||||
|
GetCompileDefinitionsAndDirectories(target, config,
|
||||||
|
_moc_incs, _moc_compile_defs);
|
||||||
|
|
||||||
|
makefile->AddDefinition("_moc_incs",
|
||||||
|
cmOutputConverter::EscapeForCMake(_moc_incs).c_str());
|
||||||
|
makefile->AddDefinition("_moc_compile_defs",
|
||||||
|
cmOutputConverter::EscapeForCMake(_moc_compile_defs).c_str());
|
||||||
|
|
||||||
|
for (std::vector<std::string>::const_iterator li = configs.begin();
|
||||||
|
li != configs.end(); ++li)
|
||||||
|
{
|
||||||
|
std::string config_moc_incs;
|
||||||
|
std::string config_moc_compile_defs;
|
||||||
|
GetCompileDefinitionsAndDirectories(target, *li,
|
||||||
|
config_moc_incs,
|
||||||
|
config_moc_compile_defs);
|
||||||
|
if (config_moc_incs != _moc_incs)
|
||||||
|
{
|
||||||
|
configIncludes[*li] =
|
||||||
|
cmOutputConverter::EscapeForCMake(config_moc_incs);
|
||||||
|
if(_moc_incs.empty())
|
||||||
|
{
|
||||||
|
_moc_incs = config_moc_incs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (config_moc_compile_defs != _moc_compile_defs)
|
||||||
|
{
|
||||||
|
configDefines[*li] =
|
||||||
|
cmOutputConverter::EscapeForCMake(config_moc_compile_defs);
|
||||||
|
if(_moc_compile_defs.empty())
|
||||||
|
{
|
||||||
|
_moc_compile_defs = config_moc_compile_defs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *qtVersion = makefile->GetDefinition("_target_qt_version");
|
||||||
|
if (strcmp(qtVersion, "5") == 0)
|
||||||
|
{
|
||||||
|
cmTarget *qt5Moc = makefile->FindTargetToUse("Qt5::moc");
|
||||||
|
if (!qt5Moc)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("Qt5::moc target not found ",
|
||||||
|
autogenTargetName.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
makefile->AddDefinition("_qt_moc_executable",
|
||||||
|
qt5Moc->ImportedGetLocation(""));
|
||||||
|
}
|
||||||
|
else if (strcmp(qtVersion, "4") == 0)
|
||||||
|
{
|
||||||
|
cmTarget *qt4Moc = makefile->FindTargetToUse("Qt4::moc");
|
||||||
|
if (!qt4Moc)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("Qt4::moc target not found ",
|
||||||
|
autogenTargetName.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
makefile->AddDefinition("_qt_moc_executable",
|
||||||
|
qt4Moc->ImportedGetLocation(""));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("The CMAKE_AUTOMOC feature supports only Qt 4 and "
|
||||||
|
"Qt 5 ", autogenTargetName.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string cmQtAutoGeneratorInitializer::GetAutogenTargetName(
|
std::string cmQtAutoGeneratorInitializer::GetAutogenTargetName(
|
||||||
cmTarget const* target)
|
cmTarget const* target)
|
||||||
{
|
{
|
||||||
|
@ -651,98 +743,6 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmQtAutoGeneratorInitializer::SetupAutoMocTarget(cmTarget const* target,
|
|
||||||
const std::string &autogenTargetName,
|
|
||||||
std::vector<std::string> const& skipMoc,
|
|
||||||
std::vector<std::string> const& mocHeaders,
|
|
||||||
std::map<std::string, std::string> &configIncludes,
|
|
||||||
std::map<std::string, std::string> &configDefines)
|
|
||||||
{
|
|
||||||
cmMakefile* makefile = target->GetMakefile();
|
|
||||||
|
|
||||||
const char* tmp = target->GetProperty("AUTOMOC_MOC_OPTIONS");
|
|
||||||
std::string _moc_options = (tmp!=0 ? tmp : "");
|
|
||||||
makefile->AddDefinition("_moc_options",
|
|
||||||
cmOutputConverter::EscapeForCMake(_moc_options).c_str());
|
|
||||||
makefile->AddDefinition("_skip_moc",
|
|
||||||
cmOutputConverter::EscapeForCMake(cmJoin(skipMoc, ";")).c_str());
|
|
||||||
makefile->AddDefinition("_moc_headers",
|
|
||||||
cmOutputConverter::EscapeForCMake(cmJoin(mocHeaders, ";")).c_str());
|
|
||||||
bool relaxedMode = makefile->IsOn("CMAKE_AUTOMOC_RELAXED_MODE");
|
|
||||||
makefile->AddDefinition("_moc_relaxed_mode", relaxedMode ? "TRUE" : "FALSE");
|
|
||||||
|
|
||||||
std::string _moc_incs;
|
|
||||||
std::string _moc_compile_defs;
|
|
||||||
std::vector<std::string> configs;
|
|
||||||
const std::string& config = makefile->GetConfigurations(configs);
|
|
||||||
GetCompileDefinitionsAndDirectories(target, config,
|
|
||||||
_moc_incs, _moc_compile_defs);
|
|
||||||
|
|
||||||
makefile->AddDefinition("_moc_incs",
|
|
||||||
cmOutputConverter::EscapeForCMake(_moc_incs).c_str());
|
|
||||||
makefile->AddDefinition("_moc_compile_defs",
|
|
||||||
cmOutputConverter::EscapeForCMake(_moc_compile_defs).c_str());
|
|
||||||
|
|
||||||
for (std::vector<std::string>::const_iterator li = configs.begin();
|
|
||||||
li != configs.end(); ++li)
|
|
||||||
{
|
|
||||||
std::string config_moc_incs;
|
|
||||||
std::string config_moc_compile_defs;
|
|
||||||
GetCompileDefinitionsAndDirectories(target, *li,
|
|
||||||
config_moc_incs,
|
|
||||||
config_moc_compile_defs);
|
|
||||||
if (config_moc_incs != _moc_incs)
|
|
||||||
{
|
|
||||||
configIncludes[*li] =
|
|
||||||
cmOutputConverter::EscapeForCMake(config_moc_incs);
|
|
||||||
if(_moc_incs.empty())
|
|
||||||
{
|
|
||||||
_moc_incs = config_moc_incs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (config_moc_compile_defs != _moc_compile_defs)
|
|
||||||
{
|
|
||||||
configDefines[*li] =
|
|
||||||
cmOutputConverter::EscapeForCMake(config_moc_compile_defs);
|
|
||||||
if(_moc_compile_defs.empty())
|
|
||||||
{
|
|
||||||
_moc_compile_defs = config_moc_compile_defs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *qtVersion = makefile->GetDefinition("_target_qt_version");
|
|
||||||
if (strcmp(qtVersion, "5") == 0)
|
|
||||||
{
|
|
||||||
cmTarget *qt5Moc = makefile->FindTargetToUse("Qt5::moc");
|
|
||||||
if (!qt5Moc)
|
|
||||||
{
|
|
||||||
cmSystemTools::Error("Qt5::moc target not found ",
|
|
||||||
autogenTargetName.c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
makefile->AddDefinition("_qt_moc_executable",
|
|
||||||
qt5Moc->ImportedGetLocation(""));
|
|
||||||
}
|
|
||||||
else if (strcmp(qtVersion, "4") == 0)
|
|
||||||
{
|
|
||||||
cmTarget *qt4Moc = makefile->FindTargetToUse("Qt4::moc");
|
|
||||||
if (!qt4Moc)
|
|
||||||
{
|
|
||||||
cmSystemTools::Error("Qt4::moc target not found ",
|
|
||||||
autogenTargetName.c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
makefile->AddDefinition("_qt_moc_executable",
|
|
||||||
qt4Moc->ImportedGetLocation(""));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cmSystemTools::Error("The CMAKE_AUTOMOC feature supports only Qt 4 and "
|
|
||||||
"Qt 5 ", autogenTargetName.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GetUicOpts(cmTarget const* target, const std::string& config,
|
static void GetUicOpts(cmTarget const* target, const std::string& config,
|
||||||
std::string &optString)
|
std::string &optString)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue