automoc: add a global AUTOMOC_TARGETS_FOLDER property
This has been requested, along with a patch, by Shaun Williams in http://public.kitware.com/Bug/view.php?id=13788 . It adds a global property AUTOMOC_TARGETS_FOLDER, which can be used to group the automoc targets together in a folder e.g. in Visual Studio. Alex
This commit is contained in:
parent
daaf6283f5
commit
ba0e06f250
|
@ -255,8 +255,18 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
|
||||||
automocTargetName.c_str(), true,
|
automocTargetName.c_str(), true,
|
||||||
workingDirectory.c_str(), depends,
|
workingDirectory.c_str(), depends,
|
||||||
commandLines, false, automocComment.c_str());
|
commandLines, false, automocComment.c_str());
|
||||||
|
// Set target folder
|
||||||
|
const char* automocFolder = makefile->GetCMakeInstance()->GetProperty(
|
||||||
|
"AUTOMOC_TARGETS_FOLDER");
|
||||||
|
if (automocFolder && *automocFolder)
|
||||||
|
{
|
||||||
|
automocTarget->SetProperty("FOLDER", automocFolder);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// inherit FOLDER property from target (#13688)
|
// inherit FOLDER property from target (#13688)
|
||||||
copyTargetProperty(automocTarget, target, "FOLDER");
|
copyTargetProperty(automocTarget, target, "FOLDER");
|
||||||
|
}
|
||||||
|
|
||||||
target->AddUtility(automocTargetName.c_str());
|
target->AddUtility(automocTargetName.c_str());
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,7 +236,9 @@ void cmTarget::DefineProperties(cmake *cm)
|
||||||
"AUTOMOC_MOC_OPTIONS property.\n"
|
"AUTOMOC_MOC_OPTIONS property.\n"
|
||||||
"By setting the CMAKE_AUTOMOC_RELAXED_MODE variable to TRUE the rules "
|
"By setting the CMAKE_AUTOMOC_RELAXED_MODE variable to TRUE the rules "
|
||||||
"for searching the files which will be processed by moc can be relaxed. "
|
"for searching the files which will be processed by moc can be relaxed. "
|
||||||
"See the documentation for this variable for more details.");
|
"See the documentation for this variable for more details.\n"
|
||||||
|
"The global property AUTOMOC_TARGETS_FOLDER can be used to group the "
|
||||||
|
"automoc targets together in an IDE, e.g. in MSVS.");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
("AUTOMOC_MOC_OPTIONS", cmProperty::TARGET,
|
("AUTOMOC_MOC_OPTIONS", cmProperty::TARGET,
|
||||||
|
|
|
@ -3602,6 +3602,14 @@ void cmake::DefineProperties(cmake *cm)
|
||||||
"property to name those folders. See also the documentation "
|
"property to name those folders. See also the documentation "
|
||||||
"for the FOLDER target property.");
|
"for the FOLDER target property.");
|
||||||
|
|
||||||
|
cm->DefineProperty
|
||||||
|
("AUTOMOC_TARGETS_FOLDER", cmProperty::GLOBAL,
|
||||||
|
"Name of FOLDER for *_automoc targets that are added automatically by "
|
||||||
|
"CMake for targets for which AUTOMOC is enabled.",
|
||||||
|
"If not set, CMake uses the FOLDER property of the parent target as a "
|
||||||
|
"default value for this property. See also the documentation for the "
|
||||||
|
"FOLDER target property and the AUTOMOC target property.");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
("PREDEFINED_TARGETS_FOLDER", cmProperty::GLOBAL,
|
("PREDEFINED_TARGETS_FOLDER", cmProperty::GLOBAL,
|
||||||
"Name of FOLDER for targets that are added automatically by CMake.",
|
"Name of FOLDER for targets that are added automatically by CMake.",
|
||||||
|
|
Loading…
Reference in New Issue