CMake for D2 ready for testers

Gour D. gour at atmarama.net
Fri Oct 8 15:16:06 PDT 2010


On Fri, 8 Oct 2010 21:41:55 +0200
>>>>>> "Jens" == Jens Mueller <jens.k.mueller at gmx.de> wrote:

Jens> I also think CMake isn't that shiny. But you can get the job done
Jens> once you're familiar with it. And it has been adopted by some big
Jens> projects: Blender 3D, Boost, clang, KDE, LLVM, MiKTeX, MySQL (see
Jens> http://en.wikipedia.org/wiki/Cmake#Applications_using_CMake).
Jens> That should be put into consideration.

Here is the waf list:

http://code.google.com/p/waf/wiki/ProjectsUsingWaf

Jens> I never used this but CMake has generators for Visual Studio and
Jens> through the Makefile Generators you can integrate it in
Jens> CodeBlocks and Eclipse. Don't know how important this is. I live
Jens> happily with the generated Makefiles.

in waf's TODO I found some similar items, although not labelled as
high-priority:

+ IDE file generator (msvc, codeblocks)
+ CMake file interpreter

Jens> Coming back to the original question. I can recommend CMake
Jens> especially if one plans to do C and C++ programming. For D we
Jens> (Steve, Dean and I) are trying to improve the support. Fixing Mac
Jens> OSX is next on my list.

My primary interest is D and developing on Linux, although we want our
app to run on Mac & Windows as well (hopefully using QtD).

Jens> I have to admit I neither know Scons nor Waf. Maybe these are
Jens> superior. They're Python-based, right? I'll guess that makes them
Jens> favorable for Python programmers.

Waf really looks good and, afaics, it's more extensible than Scons.

Here is the table with some comparisons:

http://code.google.com/p/waf/wiki/WafAndOtherBuildSystems

Jens> On top of my head some things I find nice in CMake. Just curious
Jens> whether Scons/Waf have similar features.

I'm not at all familiar with waf, just read a bit about it and here is
the feature list:

http://code.google.com/p/waf/

and here is the 'book':

http://freehackers.org/~tnagy/wafbook160p3/


Jens> * Find Google Test/other libraries (if supported) in one line:
Jens>   find_package(GTest REQUIRED)

I see something like:

ctx.find_program('touch', var='TOUCH')

Jens> * Tight integration for testing and packaging (ctest, cpack)

Only dist for tarballs, afaict.

Jens> * Publishing build/test results

No idea.

Jens> * No dependencies besides a C++ compiler for installation.

This is one advantage of waf that it only requires ~80K python script
which is, usually, distributed with the sources.

Jens> * Continuous Integration watching subversion repository

The above page says: "provides automatic rebuilds for continuous
integration"
 
Jens> * Valgrind/Purify integration

Considering Samba uses Waf, Google returned:

http://wiki.samba.org/index.php/Debugging_individual_tests

Moreover, since the system uses full-featured programming language,
probably there are no restriction what can be done...

In any case, it's interesting and we'll put it on our evaluation-list.


Sincerely,
Gour

-- 

Gour  | Hlapicina, Croatia  | GPG key: CDBF17CA
----------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20101009/aa7a7aa7/attachment.pgp>


More information about the Digitalmars-d mailing list