CMake: Add heuristics to set "Run in Terminal" flag

For CMake file-api, flag all applications not linking to "QtXGui"
as "Run in Terminal".

Task-number: QTCREATORBUG-21451
Change-Id: I29f086c546d3d8a9f56257e423602f787db42ccd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Tobias Hunger
2019-12-12 11:15:36 +01:00
parent f66aaf1aa9
commit 0dbe6f8e3c
3 changed files with 13 additions and 0 deletions

View File

@@ -256,6 +256,17 @@ QList<CMakeBuildTarget> generateBuildTargets(const PreprocessedData &input,
extractBacktraceInformation(t.backtraceGraph, sourceDir, id.backtrace, 500));
}
// Is this a terminal application?
if (ct.targetType == ExecutableType && t.link && t.link.value().language == "CXX") {
for (const FragmentInfo &f : t.link.value().fragments) {
if (f.role != "libraries")
continue;
if (f.fragment.contains("QtGui") || f.fragment.contains("Qt5Gui")
|| f.fragment.contains("Qt6Gui"))
ct.linksToQtGui = true;
}
}
return ct;
});
return result;