summaryrefslogtreecommitdiffstats
path: root/src/tools/cmake_automoc_parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/cmake_automoc_parser')
-rw-r--r--src/tools/cmake_automoc_parser/main.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/tools/cmake_automoc_parser/main.cpp b/src/tools/cmake_automoc_parser/main.cpp
index 456b06b072..60eb4b2977 100644
--- a/src/tools/cmake_automoc_parser/main.cpp
+++ b/src/tools/cmake_automoc_parser/main.cpp
@@ -264,6 +264,12 @@ int main(int argc, char **argv)
cmakeAutogenIncludeDirOption.setValueName(QStringLiteral("CMake AutoGen include directory"));
parser.addOption(cmakeAutogenIncludeDirOption);
+ QCommandLineOption isMultiConfigOption(
+ QStringLiteral("cmake-multi-config"));
+ isMultiConfigOption.setDescription(
+ QStringLiteral("Set this option when using CMake with a multi-config generator"));
+ parser.addOption(isMultiConfigOption);
+
QStringList arguments = QCoreApplication::arguments();
parser.process(arguments);
@@ -354,13 +360,17 @@ int main(int argc, char **argv)
}
// 2) Process headers
+ const bool isMultiConfig = parser.isSet(isMultiConfigOption);
for (auto mapIt = autoGenHeaders.begin(); mapIt != autoGenHeaders.end(); ++mapIt) {
auto it = parseCacheEntries.find(mapIt.key());
if (it == parseCacheEntries.end()) {
continue;
}
+ const QString pathPrefix = !isMultiConfig
+ ? QStringLiteral("../")
+ : QString();
const QString jsonPath =
- dir.filePath(QLatin1String("../") + mapIt.value() + QLatin1String(".json"));
+ dir.filePath(pathPrefix + mapIt.value() + QLatin1String(".json"));
jsonFileList.push_back(jsonPath);
}