Basic questions ...

Andreas Pakulat apaku at gmx.de
Mon May 14 14:25:39 UTC 2007


On 14.05.07 10:43:36, Sandro Andrade wrote:
> Hi all,
> 
> I'm trying to understand the kdevelop design and coding decisions and I
> would be grateful for hints on some basic points:
> 
> 1) What is the goal of the "shell" in lib/shell ? Something related to
> unixes shell interpreter ???

No, its a shell for the application, it implements many of the
interfaces in lib/interfaces. It provides the glue-code between these
and adds the ui-library sublime into it all. Its somewhat related to a
shell interpreter in that its the "environment" that the rest of the app
runs in.

> 2) In kdevelop wiki we found:
> 
> "The idea is that platform code (currently in lib/) contains:
> 
>   - everything to create platform plugins
>   - everything to create platform applications
>   - commonly used/important plugins
> 
> "
> 
> what do you mean by "platform applications" ?

Applications that use kdevplatform.

> 3) I suppose the code in /lib directory constitutes a kdevelop foundation
> library (named kdevelop plataform), as something additional
> to simply a graphical IDE application, am I right ?

what is currently in /lib will be a separate module called kdevplatform.
Its meant to work similar to the Eclipse SDK, it can be used to build
your own IDE-like application on top of it. For this it provides various
things that you can just use instead of implementing yourself, like a
project class and a way to load projects, code that handles multiple
toolviews and mainwindows and so on...

> 4) In kdevelop wiki we found "To allow plugins to expose their functionality
> via abstract interfaces and at the same time do not care about BC and do not
> force other plugins to link with them". What do you mean by "BC" ? Binary
> Compatibility ??

Exactly.

> 5) I suppose there are several "plugin domains" in kdevelop (eg. language
> support plugin, editor tools plugins, etc). Each of them would have a
> different interface, required do be implemented by new plugins. Is this
> write ? What are the defined plugin domains ?

These plugin domains are not formally defined, look into lib/ and you'll
see that currently we have editor for editor integration (although there
are no extension interfaces used there as its just some wrapping code
around KTE), language which has the language interface and project with
the interfaces that help building plugins that manage projects. Also
there's lib/plugins/outputview and vcs each having  interfaces, those
are 2 more domains. If we find that we need a new interface for
something and its more than just 1 file we'll create another subproject
for it.

> 6) My kdevelop4 snapshot does not allow the creation of new projects. No
> project template is exhibited in the new project dialog.
> I noticed the following lines commented in main.cpp:

Thats correct. What snapshot? Do you have a tar.bz2 under
<kdevelop-install-dir>/share/apps/kdevappwizard/app_templates? If not,
do you have a subdir in
<kdevelop-source-dir>/languages/cpp/app_templates? Were there any errors
during building KDevelop4?

> How can I create a project in KDevelop4 ??

KDevelop4 (as in latest from svn) has an app wizard and a template for a
basic QMake project. No other templates exist yet, if you have a project
already add a basic .kdev4 file to its top-level dir having:

[Project]
Name=Foobar
Manager=KDevQMakeManager

Where you replace KDevQMakeManager with the manager plugin you want to
use. I'm not sure how the custom makefile manager plugin is called, but
the CMake one is called KdevCMakeManager - but don't expect this one to
work at all. I guess the custom one is called something like
KDevCustomMakeManager, you can find out by looking at the .desktop file
in buildtools/managers/custommake/

Andreas

-- 
You will become rich and famous unless you don't.




More information about the KDevelop-devel mailing list