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

Method defines

plugins/custom-definesandincludes/definesandincludesmanager.cpp:113–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

111DefinesAndIncludesManager::~DefinesAndIncludesManager() = default;
112
113Defines DefinesAndIncludesManager::defines( ProjectBaseItem* item, Type type ) const
114{
115 Q_ASSERT(QThread::currentThread() == qApp->thread());
116
117 if (!item) {
118 return m_settings->provider()->defines(nullptr);
119 }
120
121 Defines defines;
122
123 for (auto provider : m_providers) {
124 if (provider->type() & type) {
125 merge(&defines, provider->defines(item));
126 }
127 }
128
129 if ( type & ProjectSpecific ) {
130 auto buildManager = item->project()->buildSystemManager();
131 if ( buildManager ) {
132 merge(&defines, buildManager->defines(item));
133 }
134 }
135
136 // Manually set defines have the highest priority and overwrite values of all other types of defines.
137 if (type & UserDefined) {
138 auto cfg = item->project()->projectConfiguration().data();
139
140 merge(&defines, findConfigForItem(m_settings->readPaths(cfg), item).defines);
141 }
142
143 merge(&defines, NoProjectIncludePathsManager::defines(item->path().path()));
144
145 return defines;
146}
147
148Path::List DefinesAndIncludesManager::includes( ProjectBaseItem* item, Type type ) const
149{

Callers

nothing calls this directly

Calls 11

mergeFunction · 0.85
findConfigForItemFunction · 0.85
threadMethod · 0.80
buildSystemManagerMethod · 0.80
readPathsMethod · 0.80
providerMethod · 0.45
typeMethod · 0.45
projectMethod · 0.45
dataMethod · 0.45
projectConfigurationMethod · 0.45
pathMethod · 0.45

Tested by

no test coverage detected