[cmake-developers] How to proceed with some Eclipse issues ?

Alexander Neundorf neundorf at kde.org
Sun Aug 26 12:20:23 EDT 2012


Hi,

there are currently basically two issues left with the Eclipse generator, 
which I cannot really fix, since they are caused by issues in Eclipse itself. 
I don't really know how to proceed...

Basically they are all caused by the fact that Eclipse does not really support 
out-of-source builds, which means for Eclipse projects where the project file 
(.project) is not located at the top of the source tree.

To work around this, the Eclipse project generator creates so called "linked 
resources" from the build tree pointing to the source tree, they are something 
like smybolic links, or virtual folders, i.e. you can click on them in 
Eclipse, and they are basically links to some other real directory or file.
There is one such linked resource created which points to the root of the 
source tree.

This leads to the following effects

* the build dir cannot be a subdir of the source dir. Eclipse complains in 
this case that a linked resource is pointing to a parent directory of the 
project directory. This is inconvenient.

* The VCS plugins are not activated in the linked resource to the source tree. 
This means svn/git support is not enabled in the generated project. Users need 
to open additionally a source-project for using svn etc. I entered tickets for 
that in the Eclipse and in the svn-plugin bug trackers several months ago, but 
nothing has happened yet.

* Eclipse does not detect if files found in linked resources are actually the 
same file. I.e. additionally to the link to the source dir, I also create 
links to the project()s in the cmake project, and also virtual folders for 
each target, so you can see which source files belong to a target. So each 
source file can appear multiple times via the linked resources in a project. 
Eclipse does not detect that these files are actually the same. This has the 
effect that if I click on a source file in one linked resource, and on the 
same again in another linked resource, the file is opened twice, which can 
lead to all kind of issues with syncing, saving, etc. Also, when searching 
etc., those files are found once for each linked resource they are in.

* Eclipse has the feature of marking a linked resource as a "Derived 
resource". Such "derived resources" can be ignored e.g. when searching for 
something in the project. Now this seemed like a good way to mark the files in 
the per-target linked resources and in the per-project linked resources as 
derived, but this doesn't really work for two reasons:
this option is only used by the search, but not by the code-navigation. So 
there you still get multiple results. Additionally, the property whether a 
linked resource is a derived resource, is not saved in the project file where 
the linked resource is defined (and which is generated by cmake), but in some 
other place where Eclipse stores user settings. So it is of no use for cmake 
:-/


As I see it, all these issues need fixes in Eclipse
* recognize duplicated files in linked resources
* make it possible to use a different directory than the directory containing 
the project file as base dir for the VCS plugin

With those two things, I think most issues should be solved.
Now, I don't feel like starting to work on Eclipse myself, and I also have the 
impression that filing bug reports does not really have an effect.
Any ideas ?

Alex



More information about the cmake-developers mailing list