diff options
Diffstat (limited to 'src/plugins/nim')
-rw-r--r-- | src/plugins/nim/project/nimblebuildstep.cpp | 15 | ||||
-rw-r--r-- | src/plugins/nim/project/nimblebuildsystem.cpp | 7 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbletaskstep.cpp | 4 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbletaskstep.h | 2 | ||||
-rw-r--r-- | src/plugins/nim/project/nimcompilerbuildstep.cpp | 14 | ||||
-rw-r--r-- | src/plugins/nim/project/nimcompilercleanstep.cpp | 35 | ||||
-rw-r--r-- | src/plugins/nim/project/nimcompilercleanstep.h | 22 | ||||
-rw-r--r-- | src/plugins/nim/project/nimtoolchain.cpp | 2 | ||||
-rw-r--r-- | src/plugins/nim/project/nimtoolchain.h | 2 | ||||
-rw-r--r-- | src/plugins/nim/project/nimtoolchainfactory.cpp | 2 | ||||
-rw-r--r-- | src/plugins/nim/project/nimtoolchainfactory.h | 2 |
11 files changed, 50 insertions, 57 deletions
diff --git a/src/plugins/nim/project/nimblebuildstep.cpp b/src/plugins/nim/project/nimblebuildstep.cpp index 43fb20da23..97014cc17a 100644 --- a/src/plugins/nim/project/nimblebuildstep.cpp +++ b/src/plugins/nim/project/nimblebuildstep.cpp @@ -111,8 +111,8 @@ bool NimbleBuildStep::init() setOutputParser(parser); ProcessParameters* params = processParameters(); - params->setEnvironment(buildConfiguration()->environment()); - params->setMacroExpander(buildConfiguration()->macroExpander()); + params->setEnvironment(buildEnvironment()); + params->setMacroExpander(macroExpander()); params->setWorkingDirectory(project()->projectDirectory()); params->setCommandLine({QStandardPaths::findExecutable("nimble"), {"build", m_arguments}}); return AbstractProcessStep::init(); @@ -156,13 +156,12 @@ QVariantMap NimbleBuildStep::toMap() const QString NimbleBuildStep::defaultArguments() const { - QTC_ASSERT(buildConfiguration(), return {}; ); - switch (buildConfiguration()->buildType()) { - case ProjectExplorer::BuildConfiguration::Debug: + switch (buildType()) { + case BuildConfiguration::Debug: return {"--debugger:native"}; - case ProjectExplorer::BuildConfiguration::Unknown: - case ProjectExplorer::BuildConfiguration::Profile: - case ProjectExplorer::BuildConfiguration::Release: + case BuildConfiguration::Unknown: + case BuildConfiguration::Profile: + case BuildConfiguration::Release: default: return {}; } diff --git a/src/plugins/nim/project/nimblebuildsystem.cpp b/src/plugins/nim/project/nimblebuildsystem.cpp index 537000e357..ecfec5d3b0 100644 --- a/src/plugins/nim/project/nimblebuildsystem.cpp +++ b/src/plugins/nim/project/nimblebuildsystem.cpp @@ -134,7 +134,12 @@ NimbleBuildSystem::NimbleBuildSystem(Target *target) void NimbleBuildSystem::triggerParsing() { - m_guard = guardParsingRun(); + // Only allow one parsing run at the same time: + auto guard = guardParsingRun(); + if (!guard.guardsProject()) + return; + m_guard = std::move(guard); + m_projectScanner.startScan(); } diff --git a/src/plugins/nim/project/nimbletaskstep.cpp b/src/plugins/nim/project/nimbletaskstep.cpp index 61cfb8f66e..f5f95160d3 100644 --- a/src/plugins/nim/project/nimbletaskstep.cpp +++ b/src/plugins/nim/project/nimbletaskstep.cpp @@ -31,6 +31,8 @@ #include <projectexplorer/buildstep.h> #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/processparameters.h> +#include <projectexplorer/projectexplorerconstants.h> + #include <utils/fileutils.h> #include <QStandardPaths> @@ -47,7 +49,7 @@ NimbleTaskStep::NimbleTaskStep(BuildStepList *parentList, Core::Id id) bool NimbleTaskStep::init() { - processParameters()->setEnvironment(buildConfiguration()->environment()); + processParameters()->setEnvironment(buildEnvironment()); processParameters()->setWorkingDirectory(project()->projectDirectory()); return validate() && AbstractProcessStep::init(); } diff --git a/src/plugins/nim/project/nimbletaskstep.h b/src/plugins/nim/project/nimbletaskstep.h index f8e7d375d4..15e67885cd 100644 --- a/src/plugins/nim/project/nimbletaskstep.h +++ b/src/plugins/nim/project/nimbletaskstep.h @@ -25,7 +25,7 @@ #pragma once -#include <projectexplorer/processstep.h> +#include <projectexplorer/abstractprocessstep.h> namespace Nim { diff --git a/src/plugins/nim/project/nimcompilerbuildstep.cpp b/src/plugins/nim/project/nimcompilerbuildstep.cpp index 5159e45946..521c038afd 100644 --- a/src/plugins/nim/project/nimcompilerbuildstep.cpp +++ b/src/plugins/nim/project/nimcompilerbuildstep.cpp @@ -106,7 +106,7 @@ NimCompilerBuildStep::NimCompilerBuildStep(BuildStepList *parentList, Core::Id i this, &NimCompilerBuildStep::updateProcessParameters); connect(this, &NimCompilerBuildStep::outFilePathChanged, bc, &NimBuildConfiguration::outFilePathChanged); - connect(bc->target()->project(), &ProjectExplorer::Project::fileListChanged, + connect(project(), &ProjectExplorer::Project::fileListChanged, this, &NimCompilerBuildStep::updateTargetNimFile); updateProcessParameters(); } @@ -208,17 +208,13 @@ void NimCompilerBuildStep::updateProcessParameters() void NimCompilerBuildStep::updateOutFilePath() { - auto bc = qobject_cast<NimBuildConfiguration *>(buildConfiguration()); - QTC_ASSERT(bc, return); const QString targetName = Utils::HostOsInfo::withExecutableSuffix(m_targetNimFile.toFileInfo().baseName()); - setOutFilePath(bc->buildDirectory().pathAppended(targetName)); + setOutFilePath(buildDirectory().pathAppended(targetName)); } void NimCompilerBuildStep::updateWorkingDirectory() { - auto bc = qobject_cast<NimBuildConfiguration *>(buildConfiguration()); - QTC_ASSERT(bc, return); - processParameters()->setWorkingDirectory(bc->buildDirectory()); + processParameters()->setWorkingDirectory(buildDirectory()); } void NimCompilerBuildStep::updateCommand() @@ -257,9 +253,7 @@ void NimCompilerBuildStep::updateCommand() void NimCompilerBuildStep::updateEnvironment() { - auto bc = qobject_cast<NimBuildConfiguration *>(buildConfiguration()); - QTC_ASSERT(bc, return); - processParameters()->setEnvironment(bc->environment()); + processParameters()->setEnvironment(buildEnvironment()); } void NimCompilerBuildStep::updateTargetNimFile() diff --git a/src/plugins/nim/project/nimcompilercleanstep.cpp b/src/plugins/nim/project/nimcompilercleanstep.cpp index 570df83e58..3fce967a34 100644 --- a/src/plugins/nim/project/nimcompilercleanstep.cpp +++ b/src/plugins/nim/project/nimcompilercleanstep.cpp @@ -40,6 +40,24 @@ using namespace Utils; namespace Nim { +class NimCompilerCleanStep final : public BuildStep +{ + Q_DECLARE_TR_FUNCTIONS(Nim::NimCompilerCleanStep) + +public: + NimCompilerCleanStep(BuildStepList *parentList, Core::Id id); + +private: + bool init() final; + void doRun() final; + void doCancel() final {} // Can be left empty. The run() function hardly does anything. + + bool removeCacheDirectory(); + bool removeOutFilePath(); + + Utils::FilePath m_buildDir; +}; + NimCompilerCleanStep::NimCompilerCleanStep(BuildStepList *parentList, Core::Id id) : BuildStep(parentList, id) { @@ -51,14 +69,14 @@ NimCompilerCleanStep::NimCompilerCleanStep(BuildStepList *parentList, Core::Id i workingDirectory->setDisplayStyle(BaseStringAspect::LineEditDisplay); setSummaryUpdater([this, workingDirectory] { - workingDirectory->setFilePath(buildConfiguration()->buildDirectory()); + workingDirectory->setFilePath(buildDirectory()); return displayName(); }); } bool NimCompilerCleanStep::init() { - FilePath buildDir = buildConfiguration()->buildDirectory(); + FilePath buildDir = buildDirectory(); bool result = buildDir.exists(); if (result) m_buildDir = buildDir; @@ -68,32 +86,27 @@ bool NimCompilerCleanStep::init() void NimCompilerCleanStep::doRun() { if (!m_buildDir.exists()) { - emit addOutput(tr("Build directory \"%1\" does not exist.").arg(m_buildDir.toUserOutput()), BuildStep::OutputFormat::ErrorMessage); + emit addOutput(tr("Build directory \"%1\" does not exist.").arg(m_buildDir.toUserOutput()), OutputFormat::ErrorMessage); emit finished(false); return; } if (!removeCacheDirectory()) { - emit addOutput(tr("Failed to delete the cache directory."), BuildStep::OutputFormat::ErrorMessage); + emit addOutput(tr("Failed to delete the cache directory."), OutputFormat::ErrorMessage); emit finished(false); return; } if (!removeOutFilePath()) { - emit addOutput(tr("Failed to delete the out file."), BuildStep::OutputFormat::ErrorMessage); + emit addOutput(tr("Failed to delete the out file."), OutputFormat::ErrorMessage); emit finished(false); return; } - emit addOutput(tr("Clean step completed successfully."), BuildStep::OutputFormat::NormalMessage); + emit addOutput(tr("Clean step completed successfully."), OutputFormat::NormalMessage); emit finished(true); } -void NimCompilerCleanStep::doCancel() -{ - // Can be left empty. The run() function hardly does anything. -} - bool NimCompilerCleanStep::removeCacheDirectory() { auto bc = qobject_cast<NimBuildConfiguration*>(buildConfiguration()); diff --git a/src/plugins/nim/project/nimcompilercleanstep.h b/src/plugins/nim/project/nimcompilercleanstep.h index 483d627b9e..4086cf7275 100644 --- a/src/plugins/nim/project/nimcompilercleanstep.h +++ b/src/plugins/nim/project/nimcompilercleanstep.h @@ -26,30 +26,10 @@ #pragma once #include <projectexplorer/buildstep.h> -#include <projectexplorer/buildsteplist.h> -#include <utils/fileutils.h> namespace Nim { -class NimCompilerCleanStep : public ProjectExplorer::BuildStep -{ - Q_OBJECT - -public: - NimCompilerCleanStep(ProjectExplorer::BuildStepList *parentList, Core::Id id); - -private: - bool init() override; - void doRun() override; - void doCancel() override; - - bool removeCacheDirectory(); - bool removeOutFilePath(); - - Utils::FilePath m_buildDir; -}; - -class NimCompilerCleanStepFactory : public ProjectExplorer::BuildStepFactory +class NimCompilerCleanStepFactory final : public ProjectExplorer::BuildStepFactory { public: NimCompilerCleanStepFactory(); diff --git a/src/plugins/nim/project/nimtoolchain.cpp b/src/plugins/nim/project/nimtoolchain.cpp index 6a922f9553..031557c889 100644 --- a/src/plugins/nim/project/nimtoolchain.cpp +++ b/src/plugins/nim/project/nimtoolchain.cpp @@ -49,7 +49,7 @@ NimToolChain::NimToolChain(Core::Id typeId) , m_version(std::make_tuple(-1,-1,-1)) { setLanguage(Constants::C_NIMLANGUAGE_ID); - setTypeDisplayName(NimToolChainFactory::tr("Nim")); + setTypeDisplayName(tr("Nim")); } Abi NimToolChain::targetAbi() const diff --git a/src/plugins/nim/project/nimtoolchain.h b/src/plugins/nim/project/nimtoolchain.h index 84b449d11d..a140f1444f 100644 --- a/src/plugins/nim/project/nimtoolchain.h +++ b/src/plugins/nim/project/nimtoolchain.h @@ -32,6 +32,8 @@ namespace Nim { class NimToolChain : public ProjectExplorer::ToolChain { + Q_DECLARE_TR_FUNCTIONS(Nim::NimToolChain) + public: NimToolChain(); explicit NimToolChain(Core::Id typeId); diff --git a/src/plugins/nim/project/nimtoolchainfactory.cpp b/src/plugins/nim/project/nimtoolchainfactory.cpp index 7467ab7789..b79bad1969 100644 --- a/src/plugins/nim/project/nimtoolchainfactory.cpp +++ b/src/plugins/nim/project/nimtoolchainfactory.cpp @@ -42,7 +42,7 @@ namespace Nim { NimToolChainFactory::NimToolChainFactory() { - setDisplayName(tr("Nim")); + setDisplayName(NimToolChain::tr("Nim")); setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID); setSupportedLanguages({Constants::C_NIMLANGUAGE_ID}); setToolchainConstructor([] { return new NimToolChain; }); diff --git a/src/plugins/nim/project/nimtoolchainfactory.h b/src/plugins/nim/project/nimtoolchainfactory.h index 0b79653400..1e9e219e97 100644 --- a/src/plugins/nim/project/nimtoolchainfactory.h +++ b/src/plugins/nim/project/nimtoolchainfactory.h @@ -36,8 +36,6 @@ class NimToolChain; class NimToolChainFactory : public ProjectExplorer::ToolChainFactory { - Q_OBJECT - public: NimToolChainFactory(); |