diff options
Diffstat (limited to 'src/tools/cmake_automoc_parser')
-rw-r--r-- | src/tools/cmake_automoc_parser/main.cpp | 12 |
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); } |