mirror of
https://github.com/reactos/CMake.git
synced 2024-11-25 20:49:41 +00:00
Merge topic 'AddMocOptionsToAutomoc'
2c648ab
add documentation for the AUTOMOC_MOC_OPTIONS property52719a1
automoc: fix #12541, support moc options
This commit is contained in:
commit
3452dadf89
@ -3,6 +3,7 @@ set(AM_HEADERS "@_moc_headers@" )
|
|||||||
set(AM_MOC_COMPILE_DEFINITIONS "@_moc_compile_defs@")
|
set(AM_MOC_COMPILE_DEFINITIONS "@_moc_compile_defs@")
|
||||||
set(AM_MOC_DEFINITIONS "@_moc_defs@")
|
set(AM_MOC_DEFINITIONS "@_moc_defs@")
|
||||||
set(AM_MOC_INCLUDES "@_moc_incs@")
|
set(AM_MOC_INCLUDES "@_moc_incs@")
|
||||||
|
set(AM_MOC_OPTIONS "@_moc_options@")
|
||||||
set(AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE "@CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE@")
|
set(AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE "@CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE@")
|
||||||
set(AM_CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@/")
|
set(AM_CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@/")
|
||||||
set(AM_CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@/")
|
set(AM_CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@/")
|
||||||
|
@ -1102,6 +1102,15 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
|||||||
false,
|
false,
|
||||||
"Variables that Control the Build");
|
"Variables that Control the Build");
|
||||||
|
|
||||||
|
cm->DefineProperty
|
||||||
|
("CMAKE_AUTOMOC_MOC_OPTIONS", cmProperty::VARIABLE,
|
||||||
|
"Additional options for moc when using automoc (see CMAKE_AUTOMOC).",
|
||||||
|
"This variable is used to initialize the "
|
||||||
|
"AUTOMOC_MOC_OPTIONS property on all the targets. "
|
||||||
|
"See that target property for additional information.",
|
||||||
|
false,
|
||||||
|
"Variables that Control the Build");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
("CMAKE_DEBUG_POSTFIX", cmProperty::VARIABLE,
|
("CMAKE_DEBUG_POSTFIX", cmProperty::VARIABLE,
|
||||||
"See variable CMAKE_<CONFIG>_POSTFIX.",
|
"See variable CMAKE_<CONFIG>_POSTFIX.",
|
||||||
|
@ -130,6 +130,8 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
|
|||||||
std::string _moc_defs = (tmp!=0 ? tmp : "");
|
std::string _moc_defs = (tmp!=0 ? tmp : "");
|
||||||
tmp = makefile->GetProperty("COMPILE_DEFINITIONS");
|
tmp = makefile->GetProperty("COMPILE_DEFINITIONS");
|
||||||
std::string _moc_compile_defs = (tmp!=0 ? tmp : "");
|
std::string _moc_compile_defs = (tmp!=0 ? tmp : "");
|
||||||
|
tmp = target->GetProperty("AUTOMOC_MOC_OPTIONS");
|
||||||
|
std::string _moc_options = (tmp!=0 ? tmp : "");
|
||||||
|
|
||||||
// forget the variables added here afterwards again:
|
// forget the variables added here afterwards again:
|
||||||
cmMakefile::ScopePushPop varScope(makefile);
|
cmMakefile::ScopePushPop varScope(makefile);
|
||||||
@ -139,6 +141,7 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
|
|||||||
makefile->AddDefinition("_moc_incs", _moc_incs.c_str());
|
makefile->AddDefinition("_moc_incs", _moc_incs.c_str());
|
||||||
makefile->AddDefinition("_moc_defs", _moc_defs.c_str());
|
makefile->AddDefinition("_moc_defs", _moc_defs.c_str());
|
||||||
makefile->AddDefinition("_moc_compile_defs", _moc_compile_defs.c_str());
|
makefile->AddDefinition("_moc_compile_defs", _moc_compile_defs.c_str());
|
||||||
|
makefile->AddDefinition("_moc_options", _moc_options.c_str());
|
||||||
makefile->AddDefinition("_moc_files", _moc_files.c_str());
|
makefile->AddDefinition("_moc_files", _moc_files.c_str());
|
||||||
makefile->AddDefinition("_moc_headers", _moc_headers.c_str());
|
makefile->AddDefinition("_moc_headers", _moc_headers.c_str());
|
||||||
|
|
||||||
@ -230,6 +233,7 @@ bool cmQtAutomoc::ReadAutomocInfoFile(cmMakefile* makefile,
|
|||||||
"AM_MOC_COMPILE_DEFINITIONS");
|
"AM_MOC_COMPILE_DEFINITIONS");
|
||||||
this->MocDefinitionsStr = makefile->GetSafeDefinition("AM_MOC_DEFINITIONS");
|
this->MocDefinitionsStr = makefile->GetSafeDefinition("AM_MOC_DEFINITIONS");
|
||||||
this->MocIncludesStr = makefile->GetSafeDefinition("AM_MOC_INCLUDES");
|
this->MocIncludesStr = makefile->GetSafeDefinition("AM_MOC_INCLUDES");
|
||||||
|
this->MocOptionsStr = makefile->GetSafeDefinition("AM_MOC_OPTIONS");
|
||||||
this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR");
|
this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR");
|
||||||
this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR");
|
this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR");
|
||||||
this->TargetName = makefile->GetSafeDefinition("AM_TARGET_NAME");
|
this->TargetName = makefile->GetSafeDefinition("AM_TARGET_NAME");
|
||||||
@ -306,6 +310,8 @@ void cmQtAutomoc::Init()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmSystemTools::ExpandListArgument(this->MocOptionsStr, this->MocOptions);
|
||||||
|
|
||||||
std::vector<std::string> incPaths;
|
std::vector<std::string> incPaths;
|
||||||
cmSystemTools::ExpandListArgument(this->MocIncludesStr, incPaths);
|
cmSystemTools::ExpandListArgument(this->MocIncludesStr, incPaths);
|
||||||
|
|
||||||
@ -715,6 +721,12 @@ bool cmQtAutomoc::GenerateMoc(const std::string& sourceFile,
|
|||||||
{
|
{
|
||||||
command.push_back(*it);
|
command.push_back(*it);
|
||||||
}
|
}
|
||||||
|
for(std::vector<std::string>::const_iterator it=this->MocOptions.begin();
|
||||||
|
it != this->MocOptions.end();
|
||||||
|
++it)
|
||||||
|
{
|
||||||
|
command.push_back(*it);
|
||||||
|
}
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
command.push_back("-DWIN32");
|
command.push_back("-DWIN32");
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,6 +62,7 @@ private:
|
|||||||
std::string MocCompileDefinitionsStr;
|
std::string MocCompileDefinitionsStr;
|
||||||
std::string MocDefinitionsStr;
|
std::string MocDefinitionsStr;
|
||||||
std::string MocIncludesStr;
|
std::string MocIncludesStr;
|
||||||
|
std::string MocOptionsStr;
|
||||||
std::string ProjectBinaryDir;
|
std::string ProjectBinaryDir;
|
||||||
std::string ProjectSourceDir;
|
std::string ProjectSourceDir;
|
||||||
std::string TargetName;
|
std::string TargetName;
|
||||||
@ -71,6 +72,7 @@ private:
|
|||||||
std::string OutMocCppFilename;
|
std::string OutMocCppFilename;
|
||||||
std::list<std::string> MocIncludes;
|
std::list<std::string> MocIncludes;
|
||||||
std::list<std::string> MocDefinitions;
|
std::list<std::string> MocDefinitions;
|
||||||
|
std::vector<std::string> MocOptions;
|
||||||
|
|
||||||
bool Verbose;
|
bool Verbose;
|
||||||
bool ColorOutput;
|
bool ColorOutput;
|
||||||
|
@ -157,7 +157,20 @@ void cmTarget::DefineProperties(cmake *cm)
|
|||||||
"files are included in a generated <targetname>_automoc.cpp file, "
|
"files are included in a generated <targetname>_automoc.cpp file, "
|
||||||
"which is compiled as part of the target."
|
"which is compiled as part of the target."
|
||||||
"This property is initialized by the value of the variable "
|
"This property is initialized by the value of the variable "
|
||||||
"CMAKE_AUTOMOC if it is set when a target is created.");
|
"CMAKE_AUTOMOC if it is set when a target is created.\n"
|
||||||
|
"Additional command line options for moc can be set via the "
|
||||||
|
"AUTOMOC_MOC_OPTIONS property."
|
||||||
|
);
|
||||||
|
|
||||||
|
cm->DefineProperty
|
||||||
|
("AUTOMOC_MOC_OPTIONS", cmProperty::TARGET,
|
||||||
|
"Additional options for moc when using automoc (see the AUTOMOC property)",
|
||||||
|
"This property is only used if the AUTOMOC property is set to TRUE for "
|
||||||
|
"this target. In this case, it holds additional command line options "
|
||||||
|
"which will be used when moc is executed during the build, i.e. it is "
|
||||||
|
"equivalent to the optional OPTIONS argument of the qt4_wrap_cpp() "
|
||||||
|
"macro.\n"
|
||||||
|
"By default it is empty.");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
("BUILD_WITH_INSTALL_RPATH", cmProperty::TARGET,
|
("BUILD_WITH_INSTALL_RPATH", cmProperty::TARGET,
|
||||||
@ -1184,6 +1197,7 @@ void cmTarget::SetMakefile(cmMakefile* mf)
|
|||||||
this->SetPropertyDefault("Fortran_MODULE_DIRECTORY", 0);
|
this->SetPropertyDefault("Fortran_MODULE_DIRECTORY", 0);
|
||||||
this->SetPropertyDefault("OSX_ARCHITECTURES", 0);
|
this->SetPropertyDefault("OSX_ARCHITECTURES", 0);
|
||||||
this->SetPropertyDefault("AUTOMOC", 0);
|
this->SetPropertyDefault("AUTOMOC", 0);
|
||||||
|
this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0);
|
||||||
this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0);
|
this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0);
|
||||||
|
|
||||||
// Collect the set of configuration types.
|
// Collect the set of configuration types.
|
||||||
|
Loading…
Reference in New Issue
Block a user