On Fri, 2010-10-08 at 22:25 +0200, Gour D. wrote:
> On Fri, 08 Oct 2010 17:26:25 +0100
> >>>>>> "Russel" == Russel Winder <rus...@russel.org.uk> wrote:
> 
> Russel> For C, C++, Fortran, and hence D, I personally find CMake
> Russel> awkward and clumsy.  
> 
> Hmm...based on what I know, CMake is universe for itself...not the
> most readable syntax etc., but it looks robust, capable of building
> large projects, cpack generating output in several formats, project
> files for different IDEs...

I would go further and say the CMake build language is actually very
poor -- from almost all aspects of cognition and comprehension.
However, I am not going to get into SCons salesman mode or defender
mode, nor start a "holy war" against CMake, I just wanted people to know
that the choice is not between Make, Autotools and CMake, there is also
SCons and Waf to name but two -- Ant, Maven, Gradle, etc are unlikely to
be candidates in this arena since they are JVM focused and where there
is support for C, C++, Fortran, it is actually quite poor.  The real
point is that you have to make up your mind what facilities you need in
your context for your needs. There is no absolute total order that can
be imposed on these things.

Personally I am principally an Emacs and command line person so IDE is
low on my agenda, though I use SCons as my build tool when using
Eclipse/CDT.  SCons has the capability if creating Visual Studio project
files -- and we have to be honest here and say that most C and C++
coding happens in Visual Studio -- and whilst I don't think there is
currently CodeBlock support it would be relatively easy to put it in
place.  I am fairly sure Waf has some facilities in this area.

SCons and Waf are tarball and zipfile focused since between then they
are the near monopoly format for distribution.

> Russel> I generally prefer SCons or Waf -- Waf is
> Russel> originally a fork of SCons but now is its own thing, and is
> Russel> aimed at being an Autotools replacement ("get source download
> Russel> and build on this machine" type model).  
> 
> That's what we would like as well...although generating project files
> (e.g. for CodeBlock if others agree on common IDE across platforms)
> and/or generating package formats, installers...I bet that both waf &
> Scons do not support that?

See above, Visual Studio yes, Eclipse yes (by inference Netbeans
possibly, IntelliJ IDEA possibly).  CodeBlocks is a tiny minority IDE in
the general scheme of things.

> Russel> SCons is better at
> Russel> handling the sort of situation I have: source repository shared
> Russel> by many platforms all needing builds in situ. Waf is somewhat
> Russel> faster than SCons.  
> 
> That makes it more attractive.
> 
> Russel> For my sins I am peripherally involved in
> Russel> the SCons development community, and I at some time elected
> Russel> myself as the maintainer of the D plugin -- the plugin as D
> Russel> shipped until recently with SCons assumed D 1.0 and I am only
> Russel> using D 2.0.  So when I asked who could fix the problem, the
> Russel> answer came back "you can", so I did, sort of :-) It would be
> Russel> good if there was a community of D/SCons users so as to get
> Russel> some headway on making the SCons D plugin as good as it needs
> Russel> to be.
> 
> Am I right that there is support for D in waf as well?

Yes there is, it comes as standard.  I think that like SCons, Waf deals
with the DMD v2.0 vs. DMD v1.0 pain.  The core problem is that v1.0 and
v2.0 cannot be co-resident since they install all the same commands and
yet the Phobos library has a different name in v2.0 than in v1.0.

> Russel> Isn't Cabal a dependency resolution system rather than a build
> Russel> system? i.e. Cabal sits in the same sort of position as Apt,
> Russel> Ivy, the Maven dependency resolution system, rather than being
> Russel> the equivalent of Ant +Ivy or Maven as a whole.  (C, C++,
> Russel> Fortran, and D seem to be less interested in depndency
> Russel> resolution than the JVM-based milieu of Java, Scala, Groovy,
> Russel> Clojure, etc. hence the Ant/Maven perspective.)
> 
> Well, Cabal stands for Common Architecture for Building Applications
> and Libraries so it is used for resolving deps, building the system
> and installing it (it can also build C-libs).
> 
> So, we'll investigate a bit about CMake, waf...

That is what needs to be done.  1.  Don't believe things people tell
you, find out for yourself; 2. Properly prioritize your needs to avoid
featurist tick boxes driving your decision.

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to