[CMake] cmake support Eclipse

Eric Noulard eric.noulard at gmail.com
Tue Jul 31 03:05:53 EDT 2007


2007/7/31, Brandon Van Every <bvanevery at gmail.com>:
> On 7/30/07, Andy Dingfelder <DingfelderA at sirtrack.com> wrote:
>
> > Building java apps it typically done using Maven or Ant, and I see no
> > need to re-invent the wheel and use cmake to do that.
>
> I do.  If you want Eclipse developer mindshare, then ultimately you
> want CMake to work as a Java build tool as well.

I'm following this interesting thread and here I must say
that I disagree.

CMake I think should never became "A Java build tool"
CMake "may" add java support which may end up
in generating ant build files.

Ant is a build tool which may be compared to make
(ant is much much much nicer and powerful than make though)
CMake (from my point of view) is a build tool GENERATOR.

> You may not need any
> of that at first, but you aren't going to get a snowball of support
> unless CMake is handling basic Java builds.  That's the strategic
> risk.  Strategically, if Ant figures out how to do C/C++,

Ant already does, see cc Task:
http://ant-contrib.sourceforge.net/cc.html

> and CMake
> doesn't figure out how to do Java, then CMake will lose in the Eclipse world.

Not so sure, even if I'm no eclipse expert.
If CMake is able to generate Eclipse project files and/or with
eventual Ant build files then I'm pretty sure CMake will get in the Eclipse
world very soon.

Java IDE is only a part of what Eclipse is for and I'm not sure
it will be the more prominent one in the mid-term.

Major vendors for embedded (generally cross compiled) tools
goes for eclipse "platform" http://www.linuxdevices.com/news/NS9149933313.html
because eclipse is a "cool" development platform
(<flame type=free> as soon as you have enough RAM </flame>:))
Java devel. is certainly not the main target for them.

Now that CMake cross-compiling support is emerging I think that
CMake is on a very good path to get into Eclipse world as soon
as CMake would be able to generated eclipse CDT project files.

> But some approaches are more likely to get accepted by large numbers
> of people than others.  Bootstrapping CMake is more cool than using
> Ant to take care of what CMake is supposed to take care of.  Coolness
> inspires.

I'm not sure to get your point but I will elaborate a little more on
Ant vs CMake.

I think you underestimate what Ant
and the wealth of optional tasks are able to do, I suggest you go
to http://ant.apache.org/manual/ and browse tasks.
You'll see that high level ant tasks enables you to do ftp, ssh, scp,
cvs, subversion, rpm building in a easy way.
As far as I know CMake does not have those capabilities.
The differences I see between CMake and Ant is the fact
that CMake is a two-level tool (L1 = generate , L2 = build)
with very limited extensibility (MACRO or EXECUTE_PROCESS)
whereas Ant is a single-level tool with extensive extensibility possibilities,
i.e. anything a Java program can do may be turned into an Ant task.

That said I LOVE CMake very much, because of this 2 level aspect
from my point of view CMake is missing a powerful extensibility mechanism.
Before going to CMake (from hand-written Makefile and some Ant build files)
I was interesting in SCons because SCons offers you python and
not a limited scripting language.
I did go to CMake because CMake was better at GENERATING
build files for several build tools including Visual Studio project files.


My 2 cents on CMake, Ant, Eclipse and the like.
-- 
Erk


More information about the CMake mailing list