forked from qt-creator/qt-creator
CMake: Simplify setting up a new reader
There is no need to reset a reader when e.g. the build directory changes when the server-mode reader is *not* used. So the one case where having separate reparse-options for the case where the reader changes and the case where it stays the same is bogus. So unify the flags into one set and simplify the code accordingly. Change-Id: I9bcfcc6333d574d49513ef1256a9a8597bda4ec7 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -208,8 +208,7 @@ void BuildDirManager::stopParsingAndClearState()
|
||||
}
|
||||
|
||||
void BuildDirManager::setParametersAndRequestParse(const BuildDirParameters ¶meters,
|
||||
int newReaderReparseOptions,
|
||||
int existingReaderReparseOptions)
|
||||
int reparseOptions)
|
||||
{
|
||||
if (!parameters.cmakeTool()) {
|
||||
TaskHub::addTask(Task::Error,
|
||||
@@ -219,18 +218,13 @@ void BuildDirManager::setParametersAndRequestParse(const BuildDirParameters &par
|
||||
}
|
||||
QTC_ASSERT(parameters.isValid(), return );
|
||||
|
||||
BuildDirReader *old = m_reader.get();
|
||||
stopParsingAndClearState();
|
||||
|
||||
m_parameters = parameters;
|
||||
m_parameters.workDirectory = workDirectory(parameters);
|
||||
|
||||
updateReaderType(m_parameters,
|
||||
[this, old, newReaderReparseOptions, existingReaderReparseOptions]() {
|
||||
int options = (old != m_reader.get()) ? newReaderReparseOptions
|
||||
: existingReaderReparseOptions;
|
||||
emit requestReparse(options);
|
||||
});
|
||||
[this, reparseOptions]() { emit requestReparse(reparseOptions); });
|
||||
}
|
||||
|
||||
CMakeBuildConfiguration *BuildDirManager::buildConfiguration() const
|
||||
@@ -277,10 +271,8 @@ bool BuildDirManager::persistCMakeState()
|
||||
BuildDirParameters newParameters = m_parameters;
|
||||
newParameters.workDirectory.clear();
|
||||
setParametersAndRequestParse(newParameters,
|
||||
REPARSE_URGENT
|
||||
| REPARSE_FORCE_CMAKE_RUN | REPARSE_FORCE_CONFIGURATION
|
||||
| REPARSE_CHECK_CONFIGURATION,
|
||||
REPARSE_FAIL);
|
||||
REPARSE_URGENT | REPARSE_FORCE_CMAKE_RUN
|
||||
| REPARSE_FORCE_CONFIGURATION | REPARSE_CHECK_CONFIGURATION);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -291,7 +283,6 @@ void BuildDirManager::parse(int reparseParameters)
|
||||
|
||||
QTC_ASSERT(m_parameters.isValid(), return );
|
||||
QTC_ASSERT(m_reader, return);
|
||||
QTC_ASSERT((reparseParameters & REPARSE_FAIL) == 0, return);
|
||||
QTC_ASSERT((reparseParameters & REPARSE_IGNORE) == 0, return);
|
||||
|
||||
m_reader->stop();
|
||||
@@ -435,8 +426,6 @@ QString BuildDirManager::flagsString(int reparseFlags)
|
||||
result += " SCAN";
|
||||
if (reparseFlags & REPARSE_IGNORE)
|
||||
result += " IGNORE";
|
||||
if (reparseFlags & REPARSE_FAIL)
|
||||
result += " FAIL";
|
||||
}
|
||||
return result.trimmed();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user