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
signature.asc
Description: This is a digitally signed message part