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