KDevelop 4.4 appears to find it necessary to reconfigure every project in the build set before building it (at least with CMake; didn't test with other build systems). This is unnecessary with CMake, as CMake generates rules to automatically reconfigure as part of the build when necessary. This can significantly slow down builds, especially when working on a build chain involving multiple projects where one or more take a long time to configure. If the decision to reconfigure is left to the build system, rather than forced, "rebuilding" unchanged projects can happen in a fraction of a second. This appears to be a regression from 4.3.0, and may also be making KDevelop more crash-prone (i.e. bug 305860). Reproducible: Always Steps to Reproduce: 1. Open a CMake project. 2. Build the project. 3. Build the project again. Actual Results: On second build, project is reconfigured, even though nothing has changed. Expected Results: On second build, returns immediately with 'nothing to do'.
I can't really reproduce this problem here. Can you please provide more information? Maybe you can try and see if it happens with a simple cmake project too? I don't really know what can be going on, I tried with both make and ninja and both work as expected. Please re-open when more information is available!
Also try if running 'make' via shell tries to re-run cmake as well. (This may be caused by a malicious CMakeListst.txt)
Hmm... I can definitely reproduce for *some* sessions... others it's hard to say; maybe not, or maybe that the configure step runs too quickly to notice. It doesn't happen when I run 'ninja' from the command line. (Moreover, it is DEFINITELY kdevelop doing something; it runs configure as a separate step from build, as demonstrated in that it clears the build output between steps.)
Created attachment 75381 [details] project demonstrating the problem Here is a very simple project that demonstrates the problem. When I right-click the project in the build step and 'Build', I see: /home/matthew/foo/kdev-test/build> /usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja /home/matthew/foo/kdev-test/ ...followed by lots and lots of output. After this completes, the build output clears and then shows: /home/matthew/foo/kdev-test/build> ninja -j10 ninja: no work to do. *** Finished ***
So... I can't reproduce with KDevelop master. Either it is fixed since 4.4.1, or Fedora managed to muck up their packages somehow. I'm going to re-file this as a Fedora bug.
For the record, I've determined that this was introduced by commit af2e77a4237b2348c59ab025389319caf085deb0b, and fixed by commits 8723751a938c95d48a80a456ef9d903f988b68f3 and 2bd8cfdbf78028e016106f192656924b026d55f6. It *is* broken on origin/4.4 (which has the first commit but not the second two), but fixed on origin/master.
Interesting... my bad! >.< Ok, I've cherry-picked those to 4.4. Big thanks for investigating!!! :)