forked from qt-creator/qt-creator
ClangTools: Simplify a few signatures
A runWorker's project and target cannot change and are obtainable via the runControl. Change-Id: I9ce62e94a964dde9b29abf0d1f05eddcd4b87c14 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -33,12 +33,10 @@ using namespace ProjectExplorer;
|
||||
namespace ClangTools {
|
||||
namespace Internal {
|
||||
|
||||
ClangTidyClazyRunWorker::ClangTidyClazyRunWorker(
|
||||
RunControl *runControl,
|
||||
Target *target,
|
||||
ClangTidyClazyRunWorker::ClangTidyClazyRunWorker(RunControl *runControl,
|
||||
const CppTools::ClangDiagnosticConfig &diagnosticConfig,
|
||||
const FileInfos &fileInfos)
|
||||
: ClangToolRunWorker(runControl, target, fileInfos)
|
||||
: ClangToolRunWorker(runControl, fileInfos)
|
||||
, m_diagnosticConfig(diagnosticConfig)
|
||||
{
|
||||
setId("ClangTidyClazyRunner");
|
||||
|
||||
@@ -38,7 +38,6 @@ class ClangTidyClazyRunWorker final : public ClangToolRunWorker
|
||||
|
||||
public:
|
||||
ClangTidyClazyRunWorker(ProjectExplorer::RunControl *runControl,
|
||||
ProjectExplorer::Target *target,
|
||||
const CppTools::ClangDiagnosticConfig &diagnosticConfig,
|
||||
const FileInfos &fileInfos);
|
||||
|
||||
|
||||
@@ -375,19 +375,20 @@ static ClangDiagnosticConfig getDiagnosticConfig(Project *project)
|
||||
|
||||
void ClangTidyClazyTool::startTool(bool askUserForFileSelection)
|
||||
{
|
||||
Project *project = SessionManager::startupProject();
|
||||
QTC_ASSERT(project, return);
|
||||
QTC_ASSERT(project->activeTarget(), return);
|
||||
|
||||
auto runControl = new RunControl(Constants::CLANGTIDYCLAZY_RUN_MODE);
|
||||
runControl->setDisplayName(tr("Clang-Tidy and Clazy"));
|
||||
runControl->setIcon(ProjectExplorer::Icons::ANALYZER_START_SMALL_TOOLBAR);
|
||||
|
||||
Project *project = SessionManager::startupProject();
|
||||
QTC_ASSERT(project, return);
|
||||
runControl->setTarget(project->activeTarget());
|
||||
|
||||
const FileInfos fileInfos = collectFileInfos(project, askUserForFileSelection);
|
||||
if (fileInfos.empty())
|
||||
return;
|
||||
|
||||
auto clangTool = new ClangTidyClazyRunWorker(runControl,
|
||||
project->activeTarget(),
|
||||
getDiagnosticConfig(project),
|
||||
fileInfos);
|
||||
|
||||
|
||||
@@ -117,8 +117,8 @@ namespace Internal {
|
||||
class ProjectBuilder : public RunWorker
|
||||
{
|
||||
public:
|
||||
ProjectBuilder(RunControl *runControl, Project *project, ClangToolRunWorker *parent)
|
||||
: RunWorker(runControl), m_project(project), m_parent(parent)
|
||||
ProjectBuilder(RunControl *runControl, ClangToolRunWorker *parent)
|
||||
: RunWorker(runControl), m_parent(parent)
|
||||
{
|
||||
setId("ProjectBuilder");
|
||||
}
|
||||
@@ -136,7 +136,7 @@ private:
|
||||
return;
|
||||
}
|
||||
|
||||
Target *target = m_project->activeTarget();
|
||||
Target *target = runControl()->target();
|
||||
QTC_ASSERT(target, reportFailure(); return);
|
||||
|
||||
BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown;
|
||||
@@ -169,7 +169,7 @@ private:
|
||||
connect(BuildManager::instance(), &BuildManager::buildQueueFinished,
|
||||
this, &ProjectBuilder::onBuildFinished, Qt::QueuedConnection);
|
||||
|
||||
ProjectExplorerPlugin::buildProject(m_project);
|
||||
ProjectExplorerPlugin::buildProject(target->project());
|
||||
}
|
||||
|
||||
void onBuildFinished(bool success)
|
||||
@@ -181,7 +181,6 @@ private:
|
||||
}
|
||||
|
||||
private:
|
||||
QPointer<Project> m_project;
|
||||
ClangToolRunWorker *m_parent;
|
||||
bool m_enabled = true;
|
||||
bool m_success = false;
|
||||
@@ -230,19 +229,17 @@ static QDebug operator<<(QDebug debug, const AnalyzeUnits &analyzeUnits)
|
||||
}
|
||||
|
||||
ClangToolRunWorker::ClangToolRunWorker(RunControl *runControl,
|
||||
Target *target,
|
||||
const FileInfos &fileInfos)
|
||||
: RunWorker(runControl)
|
||||
, m_projectBuilder(new ProjectBuilder(runControl, target->project(), this))
|
||||
, m_projectBuilder(new ProjectBuilder(runControl, this))
|
||||
, m_clangExecutable(Core::ICore::clangExecutable(CLANG_BINDIR))
|
||||
, m_temporaryDir("clangtools-XXXXXX")
|
||||
, m_target(target)
|
||||
, m_fileInfos(fileInfos)
|
||||
{
|
||||
addStartDependency(m_projectBuilder);
|
||||
|
||||
ClangToolsProjectSettings *projectSettings = ClangToolsProjectSettingsManager::getSettings(
|
||||
target->project());
|
||||
runControl->project());
|
||||
if (projectSettings->useGlobalSettings())
|
||||
m_projectBuilder->setEnabled(ClangToolsSettings::instance()->savedBuildBeforeAnalysis());
|
||||
else
|
||||
@@ -252,14 +249,14 @@ ClangToolRunWorker::ClangToolRunWorker(RunControl *runControl,
|
||||
void ClangToolRunWorker::init()
|
||||
{
|
||||
setSupportsReRunning(false);
|
||||
m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(
|
||||
m_target->project());
|
||||
Target *target = runControl()->target();
|
||||
m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(target->project());
|
||||
|
||||
BuildConfiguration *buildConfiguration = m_target->activeBuildConfiguration();
|
||||
BuildConfiguration *buildConfiguration = target->activeBuildConfiguration();
|
||||
QTC_ASSERT(buildConfiguration, return);
|
||||
m_environment = buildConfiguration->environment();
|
||||
|
||||
ToolChain *toolChain = ToolChainKitAspect::toolChain(m_target->kit(),
|
||||
ToolChain *toolChain = ToolChainKitAspect::toolChain(target->kit(),
|
||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
||||
QTC_ASSERT(toolChain, return);
|
||||
m_targetTriple = toolChain->originalTargetTriple();
|
||||
@@ -288,8 +285,9 @@ void ClangToolRunWorker::start()
|
||||
return;
|
||||
}
|
||||
|
||||
m_projectInfo = CppTools::CppModelManager::instance()->projectInfo(m_target->project());
|
||||
m_projectFiles = Utils::toSet(m_target->project()->files(Project::AllFiles));
|
||||
Project *project = runControl()->project();
|
||||
m_projectInfo = CppTools::CppModelManager::instance()->projectInfo(project);
|
||||
m_projectFiles = Utils::toSet(project->files(Project::AllFiles));
|
||||
|
||||
// Some projects provides CompilerCallData once a build is finished,
|
||||
if (m_projectInfo.configurationOrFilesChanged(m_projectInfoBeforeBuild)) {
|
||||
@@ -481,8 +479,9 @@ void ClangToolRunWorker::finalize()
|
||||
if (m_filesNotAnalyzed.size() != 0) {
|
||||
QString msg = tr("%1: Not all files could be analyzed.").arg(toolName);
|
||||
TaskHub::addTask(Task::Error, msg, Debugger::Constants::ANALYZERTASK_ID);
|
||||
if (m_target && !m_target->activeBuildConfiguration()->buildDirectory().exists()
|
||||
&& !ClangToolsProjectSettingsManager::getSettings(m_target->project())
|
||||
Target *target = runControl()->target();
|
||||
if (target && !target->activeBuildConfiguration()->buildDirectory().exists()
|
||||
&& !ClangToolsProjectSettingsManager::getSettings(target->project())
|
||||
->buildBeforeAnalysis()) {
|
||||
msg = tr("%1: You might need to build the project to generate or update source "
|
||||
"files. To build automatically, enable \"Build the project before starting "
|
||||
|
||||
@@ -66,7 +66,6 @@ class ClangToolRunWorker : public ProjectExplorer::RunWorker
|
||||
|
||||
public:
|
||||
ClangToolRunWorker(ProjectExplorer::RunControl *runControl,
|
||||
ProjectExplorer::Target *target,
|
||||
const FileInfos &fileInfos);
|
||||
|
||||
bool success() const { return m_success; } // For testing.
|
||||
@@ -102,7 +101,6 @@ protected:
|
||||
Utils::TemporaryDirectory m_temporaryDir;
|
||||
|
||||
private:
|
||||
QPointer<ProjectExplorer::Target> m_target;
|
||||
FileInfos m_fileInfos;
|
||||
|
||||
CppTools::ProjectInfo m_projectInfoBeforeBuild;
|
||||
|
||||
Reference in New Issue
Block a user