Review Request 115696: Break Custom Buildsystem Plugin apart into 2 pieces.

Sergey Kalinichev kalinichev.so.0 at gmail.com
Wed Feb 12 13:34:19 UTC 2014


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

Review request for KDevelop.


Bugs: 254662 and 329788
    http://bugs.kde.org/show_bug.cgi?id=254662
    http://bugs.kde.org/show_bug.cgi?id=329788


Repository: kdevelop


Description
-------

So, here is the first approach.
The features are:
1. It's possible to add includes/defines for files/directories from withing a project.
2. Data stored in Custom Build Manager's format.
3. Includes/defines come from build managers. I don't know maybe language plugins should retrieve this information directly, as e.g. current CPP plugin relies on it (if there is no includes from build manager it invokes MakeFiles fall back, but if there are it won't use that fall back mechanism then).


There are questions though:
1. What to do with .kdev_include_paths files? Should we convert it's data to the new format upon project loading or we could just ignore it for projects and use it only for "out of project" files?
2. Where to place the new plugin? Currently I've placed it in the projectmanagers folder, but I'm thinking about moving it to e.g. languages/plugins dir as imo this plugin is not exactly a "project manager".
3. For some reasong this plugin shows up above others in the list of plugins (see screenshots), is it ok, if not how to change that behaviour?
4. Does other languages have defines/includes notion, if not how to make it available only for C/C++ then?

Also there are some features missing:
1. So far there is no notification mechanism about changed defines/includes. (that is you have to press F5 to see the changes).
2. There is no caching (I wonder if it needed at all?)
3. All IncludePath* stuff from current cpp plugin is not yet integrated into this one.
...

But I think that these features can/should be implemented in separate commits.


Diffs
-----

  projectmanagers/custom-definesandincludes/kcm_widget/defineswidget.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/defineswidget.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/includesmodel.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/includesmodel.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/includeswidget.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/includeswidget.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/kcm_customdefinesandincludes.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/kcm_customdefinesandincludes.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/kcm_kdevcustomdefinesandincludes.desktop PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/projectpathsmodel.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/projectpathsmodel.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/projectpathswidget.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/projectpathswidget.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/settingsconverter.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/settingsconverter.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/settingsmanager.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/settingsmanager.cpp PRE-CREATION 
  projectmanagers/custommake/CMakeLists.txt 1731d00 
  projectmanagers/custommake/custommakemanager.cpp 346c8cd 
  projectmanagers/custom-definesandincludes/CMakeLists.txt PRE-CREATION 
  projectmanagers/custom-definesandincludes/configentry.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/customdefinesandincludesmanager.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/customdefinesandincludesmanager.cpp PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/CMakeLists.txt PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/customdefinesandincludes.kcfg PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/customdefinesandincludes.kcfgc PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/definesmodel.h PRE-CREATION 
  projectmanagers/custom-definesandincludes/kcm_widget/definesmodel.cpp PRE-CREATION 
  projectmanagers/custom-buildsystem/configwidget.ui d2157d4 
  projectmanagers/custom-buildsystem/custombuildsystemconfig.h d9844b2 
  projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp 1c3f770 
  projectmanagers/custom-buildsystem/custombuildsystemplugin.cpp 074a338 
  projectmanagers/custom-buildsystem/tests/CMakeLists.txt 6332faf 
  projectmanagers/custom-buildsystem/tests/custombuildsystemplugintest.cpp ea9e2f5 
  projectmanagers/custom-buildsystem/tests/projects/builddirproject/.kdev4/builddirproject.kdev4 d3d1e52 
  projectmanagers/custom-buildsystem/tests/projects/multipathproject/.kdev4/multipathproject.kdev4 f988fe6 
  projectmanagers/custom-buildsystem/tests/projects/simpleproject/.kdev4/simpleproject.kdev4 c5a856a 
  projectmanagers/cmake/cmakemanager.cpp 7a34b37 
  projectmanagers/cmake/CMakeLists.txt 63e23f4 
  projectmanagers/CMakeLists.txt 8b78e1e 
  projectmanagers/custom-buildsystem/configwidget.cpp 6a665a6 
  projectmanagers/custom-buildsystem/configwidget.h 85dcb09 
  projectmanagers/custom-buildsystem/configconstants.h 1f25752 
  projectmanagers/custom-buildsystem/CMakeLists.txt e742fe4 

Diff: https://git.reviewboard.kde.org/r/115696/diff/


Testing
-------

Yes, modified/enhanced tests a little bit.


File Attachments
----------------

custom_build_system_before.png
  https://git.reviewboard.kde.org/media/uploaded/files/2014/02/12/c7683483-a74f-4f84-a91d-127af710dab4__custom_build_system_before.png
custom_build_system_after.png
  https://git.reviewboard.kde.org/media/uploaded/files/2014/02/12/f4473409-be37-435a-a600-4a0159e6dd96__custom_build_system_after.png
custom_defines_and_includes.png
  https://git.reviewboard.kde.org/media/uploaded/files/2014/02/12/e49fb372-dd4e-4715-bfa4-5dac59caf0be__custom_defines_and_includes.png
full_patch
  https://git.reviewboard.kde.org/media/uploaded/files/2014/02/12/80543139-50d8-45df-bac4-a3d1865d671c__full_patch


Thanks,

Sergey Kalinichev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20140212/7c92b2ff/attachment-0001.html>


More information about the KDevelop-devel mailing list