summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Neundorf <neundorf@kde.org>2013-06-28 19:40:16 (GMT)
committerAlex Neundorf <neundorf@kde.org>2013-06-28 19:40:16 (GMT)
commitba0e06f250665ee985bb6e94dbee3ca8009b60a7 (patch)
treeba7185d7a6527948d45e07dd187538c19a6f021a
parentdaaf6283f5c0e8b7ea7ee93f983ad56d4498788d (diff)
downloadCMake-ba0e06f250665ee985bb6e94dbee3ca8009b60a7.zip
CMake-ba0e06f250665ee985bb6e94dbee3ca8009b60a7.tar.gz
CMake-ba0e06f250665ee985bb6e94dbee3ca8009b60a7.tar.bz2
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
-rw-r--r--Source/cmQtAutomoc.cxx14
-rw-r--r--Source/cmTarget.cxx4
-rw-r--r--Source/cmake.cxx8
3 files changed, 23 insertions, 3 deletions
diff --git a/Source/cmQtAutomoc.cxx b/Source/cmQtAutomoc.cxx
index 05c43c4..34b3c7e 100644
--- a/Source/cmQtAutomoc.cxx
+++ b/Source/cmQtAutomoc.cxx
@@ -255,8 +255,18 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
automocTargetName.c_str(), true,
workingDirectory.c_str(), depends,
commandLines, false, automocComment.c_str());
- // inherit FOLDER property from target (#13688)
- copyTargetProperty(automocTarget, target, "FOLDER");
+ // 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)
+ copyTargetProperty(automocTarget, target, "FOLDER");
+ }
target->AddUtility(automocTargetName.c_str());
}
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index b14db43..a90fa74 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -236,7 +236,9 @@ void cmTarget::DefineProperties(cmake *cm)
"AUTOMOC_MOC_OPTIONS property.\n"
"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. "
- "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
("AUTOMOC_MOC_OPTIONS", cmProperty::TARGET,
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 29d9bb3..5f7d1e9 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -3603,6 +3603,14 @@ void cmake::DefineProperties(cmake *cm)
"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
("PREDEFINED_TARGETS_FOLDER", cmProperty::GLOBAL,
"Name of FOLDER for targets that are added automatically by CMake.",
"If not set, CMake uses \"CMakePredefinedTargets\" as a default "