Results 1 to 7 of 7

Thread: SCons vs CMake vs Autotools

  1. #1
    Join Date
    Sep 2006
    Beans
    56
    Distro
    Ubuntu 7.10 Gutsy Gibbon

    SCons vs CMake vs Autotools

    What can I say, I was inspired by the CVS vs SVN thread.

    I know the ultimate answer to this is probably "It depends", or maybe "use an IDE and don't worry about it", but consider indulging the question for discussion's sake.

    Personally, I need to choose one for a cross-platform project in C++, but I'm also interested in hearing what people think of these tools in general.

  2. #2
    Join Date
    Feb 2005
    Location
    Holland
    Beans
    111

    Re: SCons vs CMake vs Autotools

    When I tried autotools I found it to be one big mess, and switched to SCons as soon as I found it. SCons is nice because it's using python: simple, flexible and cross platform.

    I never really tried CMake though, but seeing that KDE is using it (or switching to it?) I guess it might be nice aswell

  3. #3
    Join Date
    Jan 2006
    Beans
    961

    Re: SCons vs CMake vs Autotools

    i'd say go for either cmake or scons .. i know and have used scons, but i've heard cmake is good and it does seem to be the "next thing" so i will look at cmake for my next project

    auto* and make etc. is a vile piece of crap .. i cringe every time i see people struggle with it .. "but, but, but .. everyone else is using it!" -- dude -- cmake/scons is portable, ok? .....

    using cmake or scons you don't need an IDE that generates the nasty, huge and unmaintainable auto*/make stuff .. because the build-file you'll be editing "manually" is simple, small and to the point
    Last edited by lnostdal; February 10th, 2008 at 02:43 PM.

  4. #4
    Join Date
    Jul 2005
    Beans
    1,535
    Distro
    Ubuntu 8.04 Hardy Heron

    Re: SCons vs CMake vs Autotools

    As others have said, stay away from the auto-tools. Not only are they difficult to use, but they are not even cross platform.

    As for Scons versus cmake, this probably comes down to preference. Scons uses python, so if you already know python then the syntax is one less barrier.

    However, the philosophy behind the two build systems is different. Scons produces executables on the native system. Whereas cmake produces native build chain (e.g. makefile on linux, visual studio solution file on Windows). Scons can optionally produce some of these two, but it wasn't initially designed to. I also know that cmake is super easy to install on windows and Mac OSX, not sure about scons, haven't had to do it.

    As for kde, they originally tried scons but were having a lot of trouble with it and switched to cmake. (Note: I might be slightly biased since I know several people that work at kitware).
    When I invented the Web, I didn't have to ask anyone's permission.
    ~Tim Berners-Lee on Net Neutrality
    -------------------------------------
    Visit the Ubuntu Programming IRC-channel at #ubuntu-programming (chat.freenode.net).

  5. #5
    Join Date
    Sep 2006
    Beans
    56
    Distro
    Ubuntu 7.10 Gutsy Gibbon

    Re: SCons vs CMake vs Autotools

    Thanks for the info!
    Just to add to the discussion, I found these recently:

    Scons vs Others (no mention of CMake)
    Why KDE switched to CMake


    I have been wanting to learn Python, but CMake looks very good + I'm sure I can find another excuse to learn Python.

  6. #6
    Join Date
    Jul 2005
    Beans
    1,535
    Distro
    Ubuntu 8.04 Hardy Heron

    Re: SCons vs CMake vs Autotools

    The fact that Scons uses python has it pros and cons. If you know python, syntax is not a barrier. However, this also means that Scons is dependent on python so:
    1) users must install python (not an issue on ubuntu, but on other OSs it may be)
    2) updates to python may break your scons scripts
    3) updates to scons may break your scons scripts

    Cmake on the other hand, has no dependencies (except c++, but since you are using this to build c++ not a problem). It's syntax is simple, so learning that is not a problem.

    And remember, the philosophy behind the two systems is different, cmake generates native buildsystem files (which I prefer, but you may not), scons generates the native binaries.
    Last edited by hod139; February 12th, 2008 at 04:21 PM.
    When I invented the Web, I didn't have to ask anyone's permission.
    ~Tim Berners-Lee on Net Neutrality
    -------------------------------------
    Visit the Ubuntu Programming IRC-channel at #ubuntu-programming (chat.freenode.net).

  7. #7
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: SCons vs CMake vs Autotools

    This is good discussion, when new FAQ will be up and running, consider submitting it to "Compare developer's tools" section.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •