current state of using cmake to compile kdevelop
sylvain.joyeux at m4x.org
Mon May 9 21:57:02 UTC 2005
> > libtool takes care mostly of PIC/non-PIC issues,
> Which issues ? Creating shared libs is trivial with cmake under linux,
> mac os X and windows (didn't try other platforms).
The main problem is that it is not portable to link a non-PIC static
library into a shared object, which is basically what is done with
"convenience" static libs (not to be installed static libraries).
> > dynamicly-loadable modules, ...
> Hmm, what's to do there ?
AFAIK, there are some systems where not any shared library can be dlopened
(or whatever you use), but I may be wrong.
> > One thing I like is that it builds *both* version of the libraries
> > (shared an non-shared), which lets the developer choose which one he
> > wants to use *without* changing its build system.
> What is this good for ?
> cmake can do the same too if you want it to.
Since I don't like other developers telling me what I should use, I prefer
letting others the choice.
> > BTW, out of curiosity, why cmake and not (for instance) scons ?
> The question is slightly wrong.
> From my POV we have exactly two alternatives to autohell: scons and
> cmake. I had a look at scons some time ago, and it felt strange. I have
> to write a program to compile my software.
> With cmake I specify how I want my program to be compiled.
That's what is done in scons too. You write "a program" when you want to
extend the build system. Otherwise, you just write lines like
Program('program-name', [ sources ])
The thing I don't like with cmake is that it relies on make for building.
Scons tries to fix the make problems, particularly the
> And cmake can create native project files for: GNU make, MSVC, Apple
> XCode, KDevelop and others
That's a very nice feature
> I'm using cmake since maybe 2 years now, on
> linux, mac os X, windows and for cross-compiling and I am very satisfied
> with it.
Well, just asking ;) I think it's nice to try moving away from automake.
More information about the KDevelop-devel