diff --git a/src/plugins/nim/project/nimbuildconfigurationfactory.cpp b/src/plugins/nim/project/nimbuildconfigurationfactory.cpp index 1d2a548d15f..107d0e7fe1d 100644 --- a/src/plugins/nim/project/nimbuildconfigurationfactory.cpp +++ b/src/plugins/nim/project/nimbuildconfigurationfactory.cpp @@ -108,7 +108,9 @@ BuildConfiguration *NimBuildConfigurationFactory::create(Target *parent, const B break; } nimCompilerBuildStep->setDefaultCompilerOptions(defaultOption); - nimCompilerBuildStep->setTargetNimFile(project->nimFiles().first()); + Utils::FileNameList nimFiles = project->nimFiles(); + if (!nimFiles.isEmpty()) + nimCompilerBuildStep->setTargetNimFile(nimFiles.first()); buildSteps->appendStep(nimCompilerBuildStep); } diff --git a/src/plugins/nim/project/nimcompilerbuildstep.cpp b/src/plugins/nim/project/nimcompilerbuildstep.cpp index 10c400c228e..6b13968c5d0 100644 --- a/src/plugins/nim/project/nimcompilerbuildstep.cpp +++ b/src/plugins/nim/project/nimcompilerbuildstep.cpp @@ -26,6 +26,7 @@ #include "nimcompilerbuildstep.h" #include "nimbuildconfiguration.h" #include "nimcompilerbuildstepconfigwidget.h" +#include "nimproject.h" #include "../nimconstants.h" @@ -50,6 +51,8 @@ NimCompilerBuildStep::NimCompilerBuildStep(BuildStepList *parentList) this, &NimCompilerBuildStep::updateProcessParameters); connect(this, &NimCompilerBuildStep::outFilePathChanged, bc, &NimBuildConfiguration::outFilePathChanged); + connect(bc->target()->project(), &ProjectExplorer::Project::fileListChanged, + this, &NimCompilerBuildStep::updateTargetNimFile); updateProcessParameters(); } @@ -202,5 +205,13 @@ void NimCompilerBuildStep::updateEnvironment() processParameters()->setEnvironment(bc->environment()); } +void NimCompilerBuildStep::updateTargetNimFile() +{ + if (!m_targetNimFile.isEmpty()) + return; + const Utils::FileNameList nimFiles = static_cast(project())->nimFiles(); + if (!nimFiles.isEmpty()) + setTargetNimFile(nimFiles.at(0)); } +} // namespace Nim diff --git a/src/plugins/nim/project/nimcompilerbuildstep.h b/src/plugins/nim/project/nimcompilerbuildstep.h index 1c22df27073..50fecb4248d 100644 --- a/src/plugins/nim/project/nimcompilerbuildstep.h +++ b/src/plugins/nim/project/nimcompilerbuildstep.h @@ -74,6 +74,8 @@ private: void updateArguments(); void updateEnvironment(); + void updateTargetNimFile(); + DefaultBuildOptions m_defaultOptions; QStringList m_userCompilerOptions; Utils::FileName m_targetNimFile;