Review Request: Store CMake build system settings per build directory rather than globally (TODO in cmakepreferences.cpp)

Ivan Shapovalov intelfx100 at gmail.com
Wed Jun 20 17:26:50 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105308/
-----------------------------------------------------------

Review request for KDevelop and Aleix Pol Gonzalez.


Description
-------

This addresses the TODO at the beginning of cmakepreferences.cpp, making
CMake build system settings saved in the project configuration file
separately for each configured build directory.
Specifically, 3 places have been changed:
* cmakeconfig.kcfg: single URLs replaced with StringLists (and names of
the parameters updated to reflect their semantics)
* cmakeutils.cpp: functions changed to pick required fields from the lists
* cmakepreferences.cpp: functions changed to work with lists + commented out
the save() call on build directory creation since it is somewhat annoying.

URLs are saved to the StringLists via KUrl::url() except build directories'
pathss themselves, which are stored as local file pathes (it was the old
behavior).

Also, cmakeArguments() had been changed in cmakejob.cpp to make it use
temporary variables instead of calling each fetch function twice.

----

There is a possible regression - if no build directory is configured for a project,
an error message is displayed instead of presenting a build directory creation dialog.
Though a user can alwaysfr go into the project settings and create the directory from there.


Diffs
-----

  CMakeLists.txt ce2a828 

Diff: http://git.reviewboard.kde.org/r/105308/diff/


Testing
-------

Used two build directories on a project, one configured to build with MinGW via -DCMAKE_TOOLCHAIN_FILE.
Ensured the settings are saved and applied correctly across build directory switch and KDevelop multiple restart.
Existing projects' configurations are picked up correctly.

All unit-tests are also passed.


Thanks,

Ivan Shapovalov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120620/5e30b017/attachment.html>


More information about the KDevelop-devel mailing list