[CMake] Eclipse CDT4 CMake Generator - Pre-Alpha version

Alexander Neundorf a.neundorf-work at gmx.net
Tue Jul 31 14:14:35 EDT 2007


Hi Miguel,

On Tuesday 31 July 2007 13:42, Miguel A. Figueroa-Villanueva wrote:
> On 7/31/07, Alexander Neundorf wrote:
> > On Tuesday 31 July 2007 09:51, you wrote:
> > ...
> >
> > > Great! If you personally think this is good and can review/apply the
> > > patches relatively quickly then that will work well for me. What I was
> > > worried about was that I open a feature request and, understandably
> > > so, it sits there to be taken care according to everyone's busy
> > > schedule...
> > >
> > > I sent the patch to the list last night, but it rejected the e-mail
> > > because it was too big... I'll now clean up the code according to the
> > > coding style and resend with cc to you. This time tared and zipped, so
> > > it shouldn't have a problem.
> >
> > Thanks :-)
>
> Attached is the file. I changed some variable names and other minor
> things, but I'm not certain it follows all the coding standards. I
> leave that to your inspection, although please point out whatever you
> find that you needed to fix for my future reference.

It looks quite good :-)

The indentation is not completely correct:

  if (!fout) { return; }

  if(emmited.find(t->first) == emmited.end())
  {
    emmited.insert(t->first);
    this->AppendTarget(fout, t->first);
  }

should be (indented braces)

  if (!fout) 
    { 
    return; 
    }

  if(emmited.find(t->first) == emmited.end())
    {
    emmited.insert(t->first);
    this->AppendTarget(fout, t->first);
    }


How do you handle the cmake projects ? You iterate over the map, which effect 
does this have ?

From the header:
enum ToolChainType { OTHER, LINUX, CYGWIN, MINGW, SOLARIS, MACOSX };
I would prefer more specific names, e.g. prefixing them 
with "EclipseToolchain", so that you have EclipseToolchainCygwin etc.

One thing which would be nice is if you would also put the include directories 
in the project files, I think this is required for autocompletion. You can 
get them via cmMakefile::GetIncludeDirectories().

Do you already setup up running and debugging ?
I don't know how this works with Eclipse, for KDevelop I put the first 
executable target I found in the entry where it expects the executable to be 
debugged.

Can you tell Eclipse to open a file when the project is loaded the first 
time ? Looks much friendlier then. If this is possible, just use the first 
source file or the first main.* file you find.

For the KDevelop generator I implemented a simple logic which reads the 
project files it created on a previous cmake run (and which may have been 
modified in the meantime by kdevelop) and just modifies what it needs to 
change, so user changes (like which plugins to load, source control config 
etc.) stay unchanged.

Bye
Alex


More information about the CMake mailing list