// Copyright (C) Filippo Cucchetto // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "nimproject.h" #include "nimrunconfiguration.h" #include "../nimconstants.h" #include "../nimtr.h" #include #include #include #include #include #include using namespace ProjectExplorer; using namespace Utils; namespace Nim { class NimRunConfiguration final : public RunConfiguration { public: NimRunConfiguration(BuildConfiguration *bc, Utils::Id id) : RunConfiguration(bc, id) { environment.setSupportForBuildEnvironment(bc); executable.setDeviceSelector(kit(), ExecutableAspect::RunDevice); setDisplayName(Tr::tr("Current Build Target")); setDefaultDisplayName(Tr::tr("Current Build Target")); setUpdater([this, bc] { auto buildConfiguration = qobject_cast(bc); QTC_ASSERT(buildConfiguration, return); const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo(); executable.setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath())); }); update(); } EnvironmentAspect environment{this}; ExecutableAspect executable{this}; ArgumentsAspect arguments{this}; WorkingDirectoryAspect workingDir{this}; TerminalAspect terminal{this}; }; // NimRunConfigurationFactory NimRunConfigurationFactory::NimRunConfigurationFactory() : FixedRunConfigurationFactory(QString()) { registerRunConfiguration("Nim.NimRunConfiguration"); addSupportedProjectType(Constants::C_NIMPROJECT_ID); } } // Nim