MCPcopy Create free account
hub / github.com/KDE/kdevelop / read

Method read

plugins/qmakemanager/qmakeprojectfile.cpp:62–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62bool QMakeProjectFile::read()
63{
64 // default values
65 // NOTE: if we already have such a var, e.g. in an include file, we must not overwrite it here!
66 if (!m_variableValues.contains(QStringLiteral("QT"))) {
67 m_variableValues[QStringLiteral("QT")] = QStringList{QStringLiteral("core"), QStringLiteral("gui")};
68 }
69 if (!m_variableValues.contains(QStringLiteral("CONFIG"))) {
70 m_variableValues[QStringLiteral("CONFIG")] = QStringList() << QStringLiteral("qt");
71 }
72
73 Q_ASSERT(m_mkspecs);
74 auto addVars = [&](const auto& vars) {
75 for (auto it = vars.begin(), end = vars.end(); it != end; ++it) {
76 if (!m_variableValues.contains(it.key())) {
77 m_variableValues.insert(it.key(), it.value());
78 }
79 }
80 };
81 addVars(m_mkspecs->variableMap());
82 if (m_cache) {
83 addVars(m_cache->variableMap());
84 }
85
86 /// TODO: more special variables
87 m_variableValues[QStringLiteral("PWD")] = QStringList() << pwd();
88 m_variableValues[QStringLiteral("_PRO_FILE_")] = QStringList() << proFile();
89 m_variableValues[QStringLiteral("_PRO_FILE_PWD_")] = QStringList() << proFilePwd();
90 m_variableValues[QStringLiteral("OUT_PWD")] = QStringList() << outPwd();
91
92 const QString qtInstallHeaders = QStringLiteral("QT_INSTALL_HEADERS");
93 const QString qtVersion = QStringLiteral("QT_VERSION");
94 const QString qtInstallLibs = QStringLiteral("QT_INSTALL_LIBS");
95
96 const QString executable = QMakeConfig::qmakeExecutable(project());
97 if (!m_qmakeQueryCache.contains(executable)) {
98 const auto queryResult = QMakeConfig::queryQMake(executable, {qtInstallHeaders, qtVersion, qtInstallLibs});
99 if (queryResult.isEmpty()) {
100 qCWarning(KDEV_QMAKE) << "Failed to query qmake - bad qmake executable configured?" << executable;
101 }
102 m_qmakeQueryCache[executable] = queryResult;
103 }
104
105 const auto cachedQueryResult = m_qmakeQueryCache.value(executable);
106 m_qtIncludeDir = cachedQueryResult.value(qtInstallHeaders);
107 m_qtVersion = cachedQueryResult.value(qtVersion);
108 m_qtLibDir = cachedQueryResult.value(qtInstallLibs);
109
110 return QMakeFile::read();
111}
112
113QStringList QMakeProjectFile::subProjects() const
114{

Callers

nothing calls this directly

Calls 10

QStringListClass · 0.85
variableMapMethod · 0.80
readFunction · 0.50
containsMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
keyMethod · 0.45
insertMethod · 0.45
valueMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected