[Libssh] Switch from autofools to CMake

Andreas Schneider mail at cynapses.org
Mon Dec 29 09:13:43 CET 2008


On Wednesday 24 December 2008 15:33:38 Aris Adamantiadis wrote:
> Hello,
>

Hey,

> You might know the famous computer science saying "If it ain't broke,
> ain't fix it".
> I am not against implementing a new makefile system under certain
> conditions:
> -I don't lose time by doing so. Right now, I know how to make a new
> release or how to add a new file

Makeing releases with CMake is no big deal, there is CPack to create packages. 
On windows you can create a NSIS installer with CPack.

> -No regression. The current build system works on solaris 7+, BSDs, OSX
> and windows. I can not do the tests on solaris nor on OSX, and tests
> MUST be made before a release.

CMake works on several UNIX system even on Solaris and it has SunCC support. 
You can look at the cmake dashboard on which systems they do nightly builds.

http://www.cdash.org/CDash/index.php?project=CMake

We can create our own dashboard and people can nightly build on different 
systems and submit the results to the dashboard.

> -The point that hurts : The minimum dependancies. On some systems, CMake
> might be hard to install and I'd prefer not to depend on CMake to be
> installed to work (same reason is true for other building tools).
> Apparently, it is possible to generate autotools files. If it works as a
> backup on platform on which installing CMake is "hard", it's ok.

If you use CMake, you need a compiler, a makefile processor (make) and cmake. 
So cmake is a requirement. A most of the system we target are also providing 
KDE4 so they have cmake too.


On the cmake homepage you can download binaries for Linux, Windows, MacOSX, 
Solaris, IRIX, HPUX and AIX.

http://www.cmake.org/cmake/resources/software.html

CMake can be bootstrapped on other UNIX systems. I'm sure it is available on 
all BSD flavors.

> -Another point : CMake syntax is not simple. I am not able to configure
> it correctly for the libtool, module versioning, compile/configure flags
> ... will you do all of this ? Also, what would happen if for a reason or
> another you stop maintaining the cmake files ?

The CMake syntax is quite simple. It is a declarative language and has a 
really good documentation. You have only one language and not 4 like with 
autofools (autoconf, m4, automake, bash, ... ) :)

It is really easy to learn and to maintain CMake files. It will be easier to 
build on Windows with CMake than with autotools.

> Understand well that I am not against your solution. I'd like to have
> some light on the points above before dumping 3 years of autotools work.
> (and auto"fools" has the advantage of working on all unix platform
> without additionnal dependancies...)

Well, the only real reason is that you need cmake installed. But I think all 
bigger distributions already provide cmake. More and more projects switch too 
CMake, Boost the C++ libraries switched to cmake too.

At the beginning we can provide CMake and autofools. And after CMake works we 
can tell people we will drop autofools support in some month.

Building libssh with cmake needs 1 working day. Get all the nice feature like 
NSIS  builds on windows will take longer.

I'm looking forward to out of source builds and automated testing with ctest. 
That's why I want sshtorture.

> Regards,
>
> Aris
>

Cheers,

	-- andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://www.cerkinfo.be/pipermail/libssh/attachments/20081229/04994637/attachment.pgp 


More information about the Libssh mailing list