run "cmake . [...]" if a build already exists in the build dir. this
saves the user from reproducing all the arguments he may need.
on the downside, this will go utterly awry if the source dir of the
existing build is a different one than known to creator. this should be
a rather rare corner case, so ignore it for now. the nice solution would
be a checkbox (on by default) to request this new behavior.
Adds a little bit of code duplication, don't currently know how to best
avoid it, so I'll leave that for now as is. To be tested once Andre
pushes his stuff.
We used to build a helper library as part of the project. First with the
qmake -after SOURCES= stuff and after until now with the
gdbmacrosbuildstep. Now, the all new and fancy integretation directtly
into the qt version dialog. You build the debugger library once for
each qt version and then it's there ready to be loaded into each
project build against that qt version. Saves a lot of time.
And makes it possible to also load that library into while debuggign a
cmake project. (Need to hook that up now.)
Unfourtanetly this breaks the custom dumpers if you use a custom run
executable.
Now it will only update the list of files when you edit [project].files,
and only reparse all files when you edit [project].config or
[project].includes. When updating the file list it will only parse the
added files.
Task: 241959, 248085
RevBy: Optics/Naming checked by con
Details: Give IOptionPage an id() to differentiate from trName(). Make showOptionsDialog return a bool (applied) and give it an optional parent. Change Cpp and form class wizards, give them a Configure... button to change those settings.
Was a bit confusing that a MakeStep was constructed by a
MakeBuildStepFactory and configured by a MakeBuildStepConfigWidget.
The MakeStep of the generic project manager was renamed to
GenericMakeStep.
Made the cmake plugin even more usable by implementing:
Pop up a wizard if there is a .user file but no .cbp file. (Fixes empty
project reported on irc.)
Pop up a wizard if the .cbp file is older then the CMakeLists.txt file,
thus reparsing the file. (Note: There is a bug that we need to actually
also check the last modified of all included files.)
Reparse the cbp file to add new RunConfigurations / delete no longer
existing RunConfigurations and update those that have changed.-
Show a nicer title in the Projects/RunConfiguration pane
Details: That fixes a few bugs, while still having a few missing
things. Don't allow the user to set a shadow build directory, if there
is already a in source build. Detect if a cbp file is already existing
and recent enough, don't rerun cmake then. Ensure that the user runs
cmake with the cbp generator on opening the project. Show the output of
the cmake generator while running. Remove the unecessary cmake step.
Details: If p4 is in path, but the server isn't configured correctly we
were pretty slow, this fixes that by running p4 client -o after the
settings have changed, if that doesn't return after 2 seconds, then we
cache that as a invalid configuration.
Details: This enables us to parse the build errors correctly.
The makesteps of the qt4project and cmakeproject have some
code dupliaction, which could be refactored. And the code
to find out the correct build parser could probably also
be done better, but we are now parsing the build output for
cmake.
Details: Add a dialog asking for command line options and build
directory. This dialog pops up if you don't have a .user file. Note,
though that it also pops up if there is already a in source build.
(The build directory lineedit should be read only then.)
The cmake button in that dialog and the output pane need more polish to
make them better. With those changes you can now build and run marble
from Qt Creator. (For marble you need to pass a few options to cmake.)
Also add a configuration page to the Tools/Options dialog, where you can
specify the cmake executable path.
And add a class which runs cmake in the background to find out which
version and wheter that cmake version has Qt Creator generator. (Which I
did begin to write.)