Build sequence seems to be broken. When I add a single target (TargetA) to it and press F8, it builds that target. When I add another one (TargetB) and press F8, all I get in the message window is: project/path/build> make -j4 TargetB ** Killed process ** And it doesn't even try to build TargetA before. As soon as I remove either target from the list (doesn't matter which one), it starts to build the remaining target again.
Can reproduce. For me that only happens when using two non-top-level build targets though. Investigating.
Okay, I was wrong, this was never really supported. This is the logic for killing previous make jobs (which has been in KDevelop for several years already): ``` KJob* MakeBuilder::runMake( KDevelop::ProjectBaseItem* item, MakeJob::CommandType c, const QStringList& overrideTargets, const MakeVariables& variables ) { ///Running the same builder twice may result in serious problems, ///so kill jobs already running on the same project foreach (MakeJob* makeJob, m_activeMakeJobs.data()) { if(item && makeJob->item() && makeJob->item()->project() == item->project() && makeJob->commandType() == c) { qCDebug(MAKEBUILDER) << "killing running make job, due to new started build on same project:" << makeJob; makeJob->kill(KJob::EmitResult); } } ... ``` We need to overthink that in order to support your use-case. I'm surprised noone else stepped over it yet, though...
Removing 'regression' keyword.
But I'm pretty sure it worked fine in kdevelop 4.7.3 and below... Each target would get built, in order, until something failed or all were finished. As a side question, 'F4' key used to jump to the next search result, build problem, etc. Now it only works when I do a global search (Ctrl-Alt-F). When I run a build and something fails, F4 doesn't do anything. Is it expected, am I doing something wrong, or is it a bug (and I should open a separate one)?
*** Bug 384169 has been marked as a duplicate of this bug. ***
I can confirm, this definitely worked in kdevelop4. Isn't that the purpose of this feature, if you have a big project and only work on well-defined parts of it, you would put the subfolders in question into the build set and thus compile and link only what you need. Calling the root level makefile would take much too long, if the project is big.
It still doesn't work in 5.2.1 version. And yes, I have no idea why there even IS a "build sequence" list, if it doesn't support building multiple things...
(In reply to Jakub Schmidtke from comment #7) > And yes, I have no idea why there even IS a "build sequence" list, > if it doesn't support building multiple things... It does support building multiple *projects*. It just doesn't support building multiple *targets* within one project.
(In reply to Matt Whitlock from comment #8) > It does support building multiple *projects*. It just doesn't support > building multiple *targets* within one project. Quite possible, I never use it in that fashion. And still, building multiple *targets* within one project worked just fine in kdevelop4.
I just tested kdevelop 5.3.0, hoping that it would finally be possible to build multiple targets/subfolders within one project, but it still doesn't work in the fashion it worked in kdevelop4. It seems to me that disabling multiple targets was a deliberate "improvement" in kdevelop5, but reading the comments in this bug report there are quite some users who would be glad to see it working in the old way, too. Would it be possible to re-enable the feature, make it work for multiple targets and projects? Since I always work on one big project, the build set feature is, I'm sorry to say it, really useless for me like it is.