Page 1 of 1

CMake ?

Posted: Sun Jan 20, 2008 01:29
by Pompei2
Hi,

I want to try to compile CEGUI using the CMake tool (on linux). Just to be sure I don't reinvent the wheel: did anyone try to do this yet ?

Posted: Mon Jan 21, 2008 07:42
by CrazyEddie
Not sure if it's been tried as yet - if you try it let us know what happens ;)

Now some waffle about CEGUI administration:

There was discussion at a developer meeting (in which I was observing and not participating) about switching the build system entirely to CMake. What the status of this is at the moment I am not sure, and am not sure if it's the right way to go either.

The discussion the devs had mainly related to having a unified build for all systems. While I agree wholeheartedly that a fully unified build is easier to maintain, it's also important to realise that there is no "silver bullet" as far as build systems go. I have looked at CMake and generally like it. I, personally, remain uncertain about moving away from what is effectively the standard on linux like systems (autotools). Though having said that, if the KDE project are using CMake, it must be good. Right?

CE.

Posted: Thu Feb 21, 2008 14:11
by Pompei2
CrazyEddie wrote:There was discussion at a developer meeting (in which I was observing and not participating) about switching the build system entirely to CMake. What the status of this is at the moment I am not sure, and am not sure if it's the right way to go either.

No news yet ?

I heard (read) that more and more projects are switching to CMake and I personally prefer it. After a first try, i got everything to compile and link, but sadly my game crashes before entering the main. This means there is still something wrong with the libs being built or the way they are linked. I have not much time these days but I will try to fix it. I will keep you updated.

Posted: Thu Feb 21, 2008 14:25
by Rackle
Have a look at the first post of the NetBeans v6.0 C/C++ and Dependencies from Source thread. I've changed every project to a "detailed" implementation rather than a ./configure approach and should soon post this update.

There are also Converters from other buildsystems to CMake that could be helpful in creating new dependencies.

What compiler are you using with CMake? Since its Linux I think my Netbeans post will be helpful to you; Netbeans uses the Cygwin environment with gcc (or is it g++?).

Posted: Thu Feb 21, 2008 15:20
by Pompei2
Thanks for your links.

I'm using gcc which in fact calls g++, because CEGUI is c++.

Posted: Sat Mar 01, 2008 08:02
by CrazyEddie
I'm using currently CMake for something else I'm working on, and for this it does fine - although that's a much more basic project.

I am still not convinced that CMake can do what autotools does in the same 'autonomous' way. While CMake does obviously allow settings for all the configurable options, having the user set these manually kind of negates the idea of a configure step.

I also think that CMake does not allow for cross compilation - which is something I just added some rudimentary support for in the autotools build.

And now the clincher... None of what I have said above may be true - it's possible that CMake can do all that autotools can do - but the issue is that I do not know how to make it do it, whereas I can make autotools jump through hoops while doing a double-twist ;) So even if CMake is the best tool in the world, the fact that I (and presumably the other devs too) have little experience with it would be a major obstacle. Tools should make life easier; not harder. There would be no benefit in CMake if we need to go off on some three hour vision quest each time we need to discover how to make the thing do what we need.

This is all just my opinion of course - though I would be prepared to exert some 'leverage', shall we say, if I felt it was needed.

Posted: Sun Mar 02, 2008 13:35
by Pompei2
The only thing that is not true in what you say is: CMake in fact does support cross compilation and CMake can do the job fully automatically. But I don't know how to cross compile :)

I am more confident with CMake than with autotools now and have (nearly) succeeded in compiling CEGUI with it. In release mode all works fine but in debug mode i have still one problem, but I think I will be able to solve it.

Currently I only build the things I need, that means SILLY, SILLYImageCodec, Base, Falagard stuff, TinyXMLParser and OpenGLRenderer and I do not intend to build the others, but If everything works fine, I could send you the CMakeLists.txt files I have written, maybe some others find it useful.

Posted: Mon Mar 03, 2008 07:50
by CrazyEddie
Glad to hear that CMake can actually do a cross-compile :)

If you do get everything working please do make the CMakeLists.txt files available (or send them to us). While I have had some negativity towards this idea in general, if it were to offer an easier way to maintain the build for all users, while maintaining the level of automation we currently have, I would be happy to say goodbye to autotools and premake in favour of CMake.

It would be good to hear if anyone else has any opinions.

CE.